第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

請教下面函數(shù)出現(xiàn)的錯(cuò)誤問題,是怎么一回事???

請教下面函數(shù)出現(xiàn)的錯(cuò)誤問題,是怎么一回事???

第一個(gè)函數(shù):BOOL CMutexDlg::OnInitDialog(){GloMutex = ::CreateMutex(NULL, FALSE, "Mutex1"); //創(chuàng)建互斥信號量ReleaseMutex(GloMutex);CWinThread *pTSocket = AfxBeginThread(SktThreadFromSer, this, 。。。。)SetTimer(1,2000,NULL);SetTimer(2,5000,NULL);}第二個(gè)相關(guān)函數(shù):void CMutexDlg::OnTimer(UINT nIDEvent) {if(nIDEvent == 1){int i = WaitForSingleObject(GloMutex, 0);SetDlgItemInt(IDC_STATIC,i);}if(nIDEvent == 2)ReleaseMutex(GloMutex);}第三個(gè)相關(guān)函數(shù):UINT SktThreadFromSer(LPVOID pParm){while(1){WaitForSingleObject(GloMutex, INFINITE);AfxMessageBox("fdjasi");ReleaseMutex(GloMutex);Sleep(5500);}}說明:定時(shí)器1定時(shí)2秒,定時(shí)器2定時(shí)5秒,線程睡眠5.5秒,開始線程彈出消息框,然后釋放互斥量,之后睡眠5.5秒,2秒后定時(shí)器1獲取信號,4秒時(shí)還是獲取信號,但此時(shí)返回結(jié)果應(yīng)該是258啊,(0x102),但事實(shí)還是0,這是錯(cuò)誤一,當(dāng)5秒時(shí)釋放信號信號,當(dāng)5.5秒的時(shí)候線程醒來,應(yīng)該會得到信號彈出消息框啊,事實(shí)上沒有,這是錯(cuò)誤二,請教原因!
查看完整描述

1 回答

?
Qyouu

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊

只需要改一個(gè)地方,將:
if(nIDEvent == 2)
ReleaseMutex(GloMutex);
改為
if(nIDEvent == 2)
while(ReleaseMutex(GloMutex));

因?yàn)槟愕?號定時(shí)器執(zhí)行頻率較2號高,所以WaitForSingleObject被調(diào)用了多次,所以需要多個(gè)ReleaseMutex對應(yīng)釋放。


查看完整回答
反對 回復(fù) 2023-03-06
  • 1 回答
  • 0 關(guān)注
  • 91 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號