9

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

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

我需要等待事件或超时发生。在直接 C++ 中是否有与此等价的功能?

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

4

2 回答 2

6

您不能将 C++11 线程例程与 win32 线程一起使用(除非您严重搞砸了 mingw 线程实现,我不建议这样做),并且没有与特定于操作系统的 API 调用等效的标准 C++。

但是,您可以使用 C++11 线程并使用条件变量(cfr. waiting )来完成与WaitForSingleObject相同的事情,即

  • 等待对象处于信号状态
  • 等到超时过去

编辑:特别是你需要wait_until

于 2014-09-26T09:57:01.213 回答
-1

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

于 2019-03-09T12:06:37.103 回答