hThread1=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadFunc1,NULL,0,&ThreadID1);
CloseHandle(hThread1);
hThread2=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadFunc2,NULL,0,&ThreadID2);
CloseHandle(hThread2);
hThread3=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadFunc3,NULL,0,&ThreadID3);
CloseHandle(hThread3);
double a=0;
a=(A+A1+A2+A3)/4;
主執行緒求A,Thread1求A1,Thread2求A2,Thread3求A3。
第一次執行時,只有A/A1有值,A2/A3回傳值是0,。
第二次執行時,正常。
uj5u.com熱心網友回復:
檢查函式回傳值https://msdn.microsoft.com/en-us/library/ms682453(VS.85).aspx
uj5u.com熱心網友回復:
你應該等待所有執行緒都計算完以后再去計算a=(A+A1+A2+A3)/4;uj5u.com熱心網友回復:
你是創建執行緒后,不管執行緒有沒執行完畢就計算了,需要等執行緒執行完后,再去計算結果。一般是這樣做的:執行緒執行完后要發訊息給主執行緒。主執行緒收到訊息后,再去計算。
uj5u.com熱心網友回復:
《Windows核心編程》轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/129761.html
標籤:進程/線程/DLL
上一篇:64位系統vc6出現fatal error LNK1113: invalid machine type問題怎么解決
下一篇:關于MSChart 控制元件
