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

作者: srxrrr (幹!我是肌董)   2015-02-05 17:06:08
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VS2010
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
MFC
問題(Question):
Mutex可以讓二個不同的程式在執行時具有先後順序
我試著照網路上查到的方式來製作Mutex的測試程式(程式碼放於下一部分)
( 參考網站: http://ppt.cc/8TAU )
測試程式動作: 按下按鈕後會開始計數5秒
測試方式: 同一程式連開兩個(簡稱A與B) 按完A的按鈕後 馬上按B的按鈕
預期結果: 等A程式執行完(過5秒後) B才會開始執行
實際結果: Mutex沒有作用 A執行時 B也可以執行 T_T
不知道是哪邊出了問題...
希望熱心的版友們 可以給一些建議
感激不盡!!
祝大家新年快樂!!
程式碼(Code):(請善用置底文網頁, 記得排版)
CSemaphore mutex; // 宣告
void CMutextestDlg::OnBnClickedButton1()
{
// TODO: 在此加入控制項告知處理常式程式碼
CSingleLock wait(&mutex); // 操作 mutex 的類別
wait.Lock(INFINITE);
CString str;
for(int i=0;i<=5;i++)
{
str.Format(_T("%d"),i);
SetDlgItemText(IDC_STATIC,str);
Sleep(1000);
}
wait.Unlock(); // 要求解鎖 mutex
}
作者: sos0214 (kaleidoscope)   2015-02-05 17:46:00
http://ppt.cc/iDjn要宣告mutex的name
作者: saxontai (黑暗,點綴孤零零的星)   2015-02-05 21:30:00
行程(process)間共用的mutex要具名
作者: kingofsdtw (不能閒下來!!)   2015-02-06 04:33:00
Mfc? 好老舊
作者: saxontai (黑暗,點綴孤零零的星)   2015-02-06 17:43:00
作者: jaw109   2015-02-06 22:13:00
因為A與B並不是同一個mutex

Links booklink

Contact Us: admin [ a t ] ucptt.com