Това е вторият въпрос от поредица относно актуализирането на потребителския интерфейс от друга нишка. Опитвам се да използвам делегат, за да кажа на потребителския интерфейс да изпълни функцията за актуализиране (не трябва да се предават данни). Създадох делегат в нишката на потребителския интерфейс и го декларирах върху нишката на потребителския интерфейс:
delegate void MyDel();
public ref class Form1 : public System::Windows::Forms::Form
{
// .....
void testFunc()
{
this->local_long_textBox->Text = "Test!!!!!!!";
}
private:
void startUp()
{
MyDel^ DelInst = gcnew MyDel(this,&CotStinger::Form1::testFunc);
Бих искал да предам DelInst на друга нишка при създаване, но когато се опитам да декларирам MyDel като extern като този върху друг модул:
extern delegate MyDel;
Получавам грешката:
Грешка C2146: синтактична грешка: липсва
';'
преди идентификатор'MyDel'
.
Ако опитам това
extern delegate void MyDel();
Получавам грешката:
Грешка C2144: синтактична грешка:
'void'
трябва да се предхожда от';'
И така, как да накарам другия клас да разпознае типа на делегата, за да мога да предам указателя на делегата към конструктора?