新しいスレッドを作成し、パラメーターをスレッド化された関数に送信する必要がありますが、機能させることはできません。私はこの参照に従って作業していました: http://msdn.microsoft.com/en-us/library/system.threading.parameterizedthreadstart.aspx
これがスレッドの作成です(コメントにエラーがあります):
System::Threading::Thread^ T = gcnew System::Threading::Thread(gcnew System::Threading::ParameterizedThreadStart(this, &Server::ClientHandler)); // ERROR: 'void Server::ClientHandler(System::Object ^,System::Object ^)' : the specified function does not match the delegate type 'void (System::Object ^)'
T->Start(ClientSocket); // ERROR: 'System::Threading::Thread::Start' : no overloaded function takes 2 arguments
ここにClientHandler
宣言があります:
void Server::ClientHandler(Object^ data, Object^ data1);
パラメータを 1 つだけ指定して試してみましたが、2 つ目のエラーしかありませんでした。
PS、関数では、パラメーターをandClientHandler
に変換する必要があります。どうすればよいですか?Object^
SOCKET*
SOCKADDR_IN*
私の試み:
SOCKET* _Sock = (SOCKET*)data;
SOCKADDR_IN* _ADDR = (SOCKADDR_IN*)data1;
Visual Studio 2012 を使用しています。