私はC++クラスをやっていますが、内部的にはクラスの関数を実行するスレッドを作成したいのですが、どうすればいいですか?私はあなたにいくつかのコードを示します。クラス機能を実行するブーストスレッドを開始するにはどうすればよいですか?
私はスレッドで実行するメンバ関数:
やろうとして何イムvoid SocketServer::runServer(){
bool connected;
tcp::acceptor a(io_service, tcp::endpoint(tcp::v4(), puerto));
std::string data;
while(seguirFuncionando()){
miSocket = new tcp::socket(io_service);
std::cout << "Waiting for connection...\n";
a.accept(*miSocket);
std::cout << "Connected\n";
connected = true;
try{
while (connected){
data = readStr();
if (data.compare("")==0){
std::cout << "End of connection.\n";
}
else{
std::cout << data << "\n";
}
}
}
catch (std::exception& e){
std::cerr << "Exception in thread: " << e.what() << "\n";
}
}
}
:
void SocketServer::runThreadServer(){
asio::thread t(runServer);
}
しかし、それはコンパイルdoesntの。エラー:
'asio :: thread :: thread()の呼び出しで一致する関数がありません 注:候補は次のとおりです。asio :: thread :: thread(Function)[Function = void(SocketServer :: *) )]
どうすればよいですか?
Thanx。
あなたは[boost.bind](http://www.boost.org/doc/libs/1_48_0/libs/bind/bind.html)にしようとする場合があります –
@JoachimPileborg私に例を教えてください。私はブーストで新しい、私は少し失われた:P – Alex