我有一个功能
void __stdcall TestThread( String^ a, String^ b)
{
MessageBox::Show( a );
MessageBox::Show( b );
_endthread();
}
我想创建一个这样的线程:
_beginthread( &HWSW_GUI::Form1::TestThread , 0, NULL );
不幸的是我收到了错误消息:
Error 2 error C3374: can't take address of 'HWSW_GUI::Form1::TestThread' unless creating delegate instance d:\testvs2008\hwsw_gui\hwsw_gui\Form1.h 5177
谢谢!
答案 0 :(得分:0)
使用托管线程而不是_beginthread。
要将参数传递给线程,请使用Thread(ParameterizedThreadStart)构造函数:http://msdn.microsoft.com/en-us/library/1h2f2459.aspx
通常,使用任何.NET语言(包括C ++ / CLI)都可以避免使用非托管内容(如PInvoke或在C ++ / CLI中混合托管/非托管代码),除非这是绝对必要的。大多数标准编程任务可以使用纯托管代码来解决。