мне нужно выполнить "Выполнить" в отдельном потокеподталкивание нить и класс
class TcpClient
{
public:
TcpClient();
virtual ~TcpClient();
void Run();
}
я запустить его с помощью наддува:
MessageBox(0, "1", APP_NAME, NULL);
TcpClient client;
boost::thread thread(boost::bind(&TcpClient::Run, &client));
thread.join();
MessageBox(0, "2", APP_NAME, NULL);
метод Run:
void TcpClient::Run()
{
boost::this_thread::sleep(boost::posix_time::milliseconds(10000)); //Sleep 10 sec
}
Messageboks2 должны вызывать сразу после первого, но я должен ждать 10 секунд. Где может быть ошибка?
Это не проблема, но вам не нужна 'bind' здесь; конструктор 'thread' имеет встроенный механизм, поэтому все, что вам нужно, это' std :: thread thr (& TcpClient :: Run и клиент); ' –