我正在寻找一种让线程等到满足条件的方法。类似于 boost::condition_variable 的东西。但不是让另一个线程通知当前线程,我希望当前线程在条件满足时唤醒。
我现在拥有的:有没有更好的方法来做到这一点?
int i = 100;//keep connection alive for 500*100 ms (roughly 1 minute)
while (!tcp_socket.available() && (i != 0))
{
if(!tcp_socket.isOpen())
{
break;
}
i--;
boost::this_thread::sleep(boost::posix_time::milliseconds(500));
}
if (tcp_socket.available())//data available to read?
{
//read data do stuff
}