我有一个带有此代码的程序:
mutable boost::condition_variable cvRun;
void CAteEngineInternal::RunSync()
{
boost::mutex m;
boost::unique_lock<boost::mutex> lock(m);
Run();
//wait for run to complete
cvRun.wait(lock);
}
int CAteEngineInternal::RunXSync(int FramesToRun)
{
boost::mutex m;
boost::unique_lock<boost::mutex> lock(m);
int retVal = RunX(FramesToRun);
//wait for run to complete
cvRun.wait(lock);
return retVal;
}
void CAteEngineInternal::OnRunCompleted(int /* status */)
{
cvRun.notify_all();
}
我正在使用 CLI,我收到以下错误:
basic_timed_mutex.hpp(216):致命错误 C1001:编译器中发生内部错误
我想替换这个 boost::mutex 代码并找到一种方法来克服这个编译器错误。我在 VS2012 上使用 C#,在 VS2010 上使用 C++。CLI 也在 VS2010 上。
有什么建议用什么?我需要它是跨平台的,并且能够在 VS2010 中编译它。