我有互斥 我有這樣的代碼,我不知道爲什麼它不能正常工作的問題...互斥問題
#include <windows.h>
#include <process.h>
#include <stdio.h>
HANDLE mutex;
unsigned _stdcall t(void*){
printf(":D:D:D\n");
return NULL;
}
int main(){
mutex=CreateMutex(NULL,FALSE,NULL);
WaitForSingleObject(mutex,INFINITE);
_beginthreadex(NULL,NULL,&t,NULL,0,NULL);
WaitForSingleObject(mutex,INFINITE);
printf("HD\n");
}
結果是:
HD
:D:D:D
我不希望看到在控制檯HD .....
但是這個代碼正常工作
HANDLE mutex;
unsigned _stdcall t(void*){
WaitForSingleObject(mutex,INFINITE);
printf(":D:D:D\n");
ReleaseMutex(mutex);
return NULL;
}
int main(){
mutex=CreateMutex(NULL,FALSE,NULL);
WaitForSingleObject(mutex,INFINITE);
_beginthreadex(NULL,NULL,&t,NULL,0,NULL);
printf("HD\n");
while(1){
}
}
結果是:
HD
謝謝大家....
請經常檢查WaitForSingleObject和其他核心函數的返回值。如果不這樣做,您將永遠無法調試自己的代碼。 – Mat