看板 C_and_CPP 關於我們 聯絡資訊
平台: VS2010 函式庫: MFC ====================================================== 謝謝大家前一篇提供的寶貴意見 現在我做了一個簡單的程式來測試Mutex的功能: 同一個程式開兩次(以下假設為A與B) 當按下A的Button1時 開始計數5秒並秀於螢幕 在5秒之內 也按下B的Button1 會發現B會等A計數完 才開始動作 但有時候(並不是每次發生) B開始動作時 整個程式會卡住 並在視窗上顯示"沒有回應" 等到計數完後 才可繼續使用B... 不知道是哪裡出了問題 = =a 以下為我的程式碼 希望各位熱心的板友 能提供點意見 感激不盡!! CMutex mutex(false,_T("Hughes")); //聲明一個具名的Mutex void CMutextestDlg::OnBnClickedButton1() { mutex.Lock(); //鎖住執行緒 //計數5秒 CString str; for(int i=0;i<=5;i++) { str.Format(_T("%d"),i); SetDlgItemText(IDC_STATIC,str); Sleep(1000); } SetDlgItemText(IDC_STATIC,_T("End")); //代表計數完成 mutex.Unlock(); //開放執行緒 } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.72.212.97 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1426143667.A.C38.html
Dforce: 你這個會鎖住 window message thread 然後就GG了 03/12 15:15
謝謝D大回覆@@ 天阿...那請問我該如何修正呢 謝謝!! ※ 編輯: srxrrr (211.72.212.97), 03/13/2015 09:32:09
ajax1218: 卡住跟MUTEX無關,請create thread執行去計數 04/20 21:22