WaitForSingleObject 使用例子
时间: 2024-08-16 21:08:29 浏览: 29
`WaitForSingleObject` 是 Windows API 中的一个函数,通常用于等待单个对象的状态发生改变,比如等待进程、线程同步事件、互斥量或其他类型的同步对象。这个函数通常在需要阻塞当前线程并检查条件是否满足时使用。
下面是一个简单的 C++ 示例,展示了如何使用 `WaitForSingleObject` 等待一个互斥量(Mutex):
```cpp
#include <Windows.h>
#include <iostream>
HANDLE hMutex; // 初始化互斥量
// 函数示例,尝试获取互斥量
void WaitForMutex() {
DWORD result = WaitForSingleObject(hMutex, INFINITE); // 参数1: 要等待的对象句柄,参数2: 指定等待时间(0表示无限)
if (result == WAIT_OBJECT_0) { // 如果成功获得对象(状态变为可用)
std::cout << "Acquired mutex." << std::endl;
// 进行需要互斥的操作...
} else {
std::cout << "Failed to acquire mutex after waiting." << std::endl;
}
ReleaseMutex(hMutex); // 执行完操作后释放互斥量
}
int main() {
hMutex = CreateMutex(NULL, FALSE, L"MyMutex"); // 创建互斥量
// 其他线程可能会调用这个函数等待锁
WaitForMutex();
// 主线程继续...
return 0;
}
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)