2013-12-09 75 views
0

我有一个boost条件变量,我正用它来睡眠一个线程。使用毫秒而不是在C++中使用秒来睡眠线程

boost::condition_variable m_cond; 

目前我正在使用这种方式,在这种情况下,我正在传递锁和它必须睡眠的秒数。目前它会睡10秒

if(!m_cond.timed_wait(lock, boost::posix_time::seconds(10))){ 


} 

有没有办法以毫秒为单位做同样的事情?我可以通过它必须等待的毫秒数,而不是将其作为一秒钟传递给它。假设如果我需要等待2秒钟,那么我想通过2000毫秒的值。这是行不通的 -

long ms = 2000; 
if(!m_cond.timed_wait(lock, ms)){ 


} 

有没有其他的方法呢?

+3

'提振::了posix_time :: milliseconds',而不是'的boost ::了posix_time :: seconds' – Caesar

+0

http://www.boost.org/doc/libs/1_41_0/doc/html/thread/time html的 –

回答

4
if(!m_cond.timed_wait(lock, boost::posix_time::milliseconds(2000)))