是否存在WaitforSingleObject的C ++等价物?

时间:2014-09-26 09:48:57

标签: c++ multithreading c++11 waitforsingleobject

我需要重写一些使用windows WaitforSingleObject函数的代码。

myEvent = CreateEvent( NULL, FALSE, FALSE, szName );
WaitForSingleObject( myEvent, nMilliseconds );

我需要等待事件或超时发生。 在直接C ++中是否有相同的东西?

我使用的是STL C ++ 11而不是其他任何库,例如boost。

2 个答案:

答案 0 :(得分:4)

您不能在win32线程中使用C ++ 11线程例程(除非您严重搞乱mingw线程实现,我不建议这样做)并且没有标准C ++等同于OS-特定的API调用。

但是,您可以使用C ++ 11线程并使用condition variables(cfr。等待)来完成WaitForSingleObject所做的同样的事情,即

  • 等待对象处于信号状态
  • 等到超时结束

编辑:具体来说,您需要wait_until

答案 1 :(得分:-2)

是的,您只能使用C ++ 11。这是一个示例(太久不能粘贴到此处):https://github.com/moya-lang/Event/blob/master/Event.h。该代码完全模仿WINAPI事件对象,因此您需要这样做。