1

右、同じクラスの静的関数から新しいスレッドを作成しました。

同じクラス内でデリゲートを呼び出して GUI を更新しようとしました。次のようなコンパイラ エラーが表示されます。

デリゲート初期化子が無効です - 関数に加えてオブジェクトが必要です。 &MainUi::AddListItemMethod で。

delegate void AddListItem(void);
    public: void AddListItemMethod(String^ myString)
    {
        ListView1->Items->Add(myString);
    }

private: static void SecondThread()
{  
AddListItem^ del = gcnew AddListItem(&MainUI::AddListItemMethod);
del->Invoke("test");
}

なぜうまくいかないのかわかりません。私もこれを試しましたが、まだ失敗しました。何か助けてください。

Invoke(gcnew AddListItem(MainUI::&AddListItemMethod), "test");
4

1 に答える 1

2

静的にするListview1必要があるか、クラスのインスタンス/オブジェクトを作成してMainUI、そのクラスの非静的メソッドにアクセスする必要があります。

ありがとう、ハッピーコーディング。

于 2012-11-30T16:53:10.727 に答える