2013-12-09 55 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)))