我目前在我的应用程序中有一个 boost::mutex 代码部分,看起来像这样
{//Lock
boost::unique_lock<boost::mutex> lock(some_mutex);
while(container.empty())
{
condition_var.wait(lock);
}/*Block if empty - for spurious wakeup*/
......
,,,,,,
}//Unlock
现在 some_mutex 是 boost::mutex 类型,而 condition_var 是 boost::condition_variable 类型
现在 condition_var 是用condition_var.notifyone()
方法触发的,不幸的是,这个方法需要 boost::mutex 才能起作用。我计划删除 boost::mutex 并使用提供的 CRITICAL_SECTION 窗口。但是我相信 boost 条件不适用于 windows CRITICAL_SECTION 关于我的选项可能是什么建议用 CRITICAL_SECTION 替换 boost::mutex 并在上面的代码中进行最小的更改?