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

一般に、C ++ / CLIを含むすべての.NET言語での作業は、絶対に必要な場合を除いて、アンマネージのもの(PInvokeやC ++ / CLIでのマネージド/アンマネージドコードの混合など)の使用を避けてください。ほとんどの標準的なプログラミングタスクは、純粋なマネージコードを使用して解決できます。

于 2012-05-29T15:38:34.400 に答える