0

我有一个功能

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

有人能帮助我吗?它让我发疯,我无法弄清楚。

谢谢!

4

1 回答 1

0

使用托管线程而不是 _beginthread。

要将参数传递给线程,请使用 Thread(ParameterizedThreadStart) 构造函数:http: //msdn.microsoft.com/en-us/library/1h2f2459.aspx

一般来说,使用任何 .NET 语言,包括 C++/CLI,都避免使用非托管的东西(如 PInvoke 或在 C++/CLI 中混合托管/非托管代码),除非这是绝对必要的。大多数标准编程任务都可以使用纯托管代码来解决。

于 2012-05-29T15:38:34.400 回答