я делаю класс 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);
}
Но он не компилируется. Ошибка:
нет подходящей функции для вызова 'asio :: thread :: thread ()
примечание: кандидаты: asio :: thread :: thread (Function) [with Function = void (SocketServer :: *) ()]
Как мне это сделать?
Thanx.