线程同步
dll中有函数A;
写个dll的客户测试程序,程序中开了2个线程 T1,T2,2个线程都调用了A;
A中控制同步:
*** A()
{
WaitForSingleObject(g_mutex,INFINITE);
...1;
...2;
//ReleaseMutex(g_mutex); //注意屏蔽了该句
}
怎么2个线程都能执行1,2两行代码阿,不是已经锁住了吗.
[解决办法]
看看你的g_mutex是如何创建的
[解决办法]
判断一下WaitForSingleObject的返回值
[解决办法]
怀疑你的g_mutex是一直有信号的,创建函数的参数看看
[解决办法]
怎么不用 EnterCriticalSection LeaveCriticalSection
[解决办法]
DWORD WINAPI ThreadProc(LPVOID lpParam){ while (1) { WaitForSingleObject(g_hMutex, INFINITE); // 1.. // 2.. ReleaseMutex(g_hMutex); } return 0; }