Re: [問題] Mutex的基本用法(MFC)

作者: srxrrr (幹!我是肌董)   2015-03-12 15:01:04
平台: 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(); //開放執行緒
}
作者: Dforce (VF-17)   2015-03-12 15:15:00
你這個會鎖住 window message thread 然後就GG了

Links booklink

Contact Us: admin [ a t ] ucptt.com