1
右我從同一個類的靜態函數創建了一個新線程。C++ .net委託不工作 - 編譯器錯誤
在同一個班級裏,我嘗試調用委託來更新GUI。 我收到一個編譯器錯誤說:
無效的委託初始值設定項 - 除了函數需要一個對象。 At & 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");
需要使用靜態方法才能像這樣使用'MainUI :: AddListItemMethod'。 –
好吧,但我需要的方法是非靜態的,所以它可以訪問Listview1控件。我該如何解決它? – user1255454
要麼必須讓Listview1靜態工作,要麼應該創建一個MainUI類的實例/對象來訪問該類的非靜態方法。 –