0
我試圖通過使用互斥鎖來保護一段代碼。由於代碼崩潰,我創建了一個簡單的測試代碼,在其下面執行相同的操作。崩潰不一定每次都在同一行代碼中,但始終圍繞「WaitForSingleObject」或「Sleep」調用。WaitForSingleObject崩潰
任何援助將不勝感激。
#include <thread>
#include <windows.h>
#include <process.h>
static HANDLE myMutex;
//The function we want to make the thread run.
void task1()
{
WaitForSingleObject(myMutex, INFINITE);
for (int i = 0; i < 20; i++)
{
Sleep(500);
}
ReleaseMutex(myMutex);
}
void task2()
{
Sleep(10);
WaitForSingleObject(myMutex, INFINITE);
for (int i = 0; i < 20; i++)
{
Sleep(10);
}
ReleaseMutex(myMutex);
}
int main(int argc, char **argv)
{
myMutex = CreateMutex(0, FALSE, 0);
std::thread t1(task1);
std::thread t2(task2);
}