1

对,我从同一个类的静态函数创建了一个新线程。

在同一个类中,我尝试调用一个委托来更新 GUI。我得到一个编译器错误说:

无效的委托初始化程序 - 除了函数之外还需要一个对象。 在 &MainUi::AddListItem 方法。

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 回答