多线程与WinApi在c++中

Multi-threading with WinApi in C++

本文关键字:c++ WinApi 多线程      更新时间:2023-10-16

我已经在多线程中挣扎了一段时间了…我昨晚设法在我当前的程序中解决了这个问题,我想要的是在我仍然能够使用我的应用程序时运行一个简单的计时器。

我使用msdn引用。

我设法使它工作良好(或至少我认为它工作良好)与这段代码:

case ID_MENUBUTTON0:
        hRunMutex = CreateMutex(NULL, TRUE, NULL);
        _beginthread(Sistem::timeFrame, 0, NULL);
        break;
case ID_MENUBUTTON4:
        ReleaseMutex(hRunMutex);
        PostQuitMessage(0);
        break;

system::timeFrame函数以100ms的间隔计算Sleep(100);的时间,并将其输出在一个静态窗口中,并每100ms更新一次窗口。

现在我想问的是,既然我真的不明白这些大惊小怪的事情,为什么会有这么多额外的东西?比如WaitForSingleObject,我见过很多,但不知道它的实际用途。除了ReleaseMutex(),还有什么需要注意的吗?

WaitForSingleObject和WaitForMultipleObjects用于让一个线程等待,直到另一个线程完成某事。实际应用是协调,比如在轮子放下之前不要降落飞机