看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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 } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.72.212.97 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1423127171.A.477.html
sos0214: http://ppt.cc/iDjn 02/05 17:46
sos0214: 要宣告mutex的name 02/05 17:47
saxontai: 行程(process)間共用的mutex要具名 02/05 21:30
kingofsdtw: Mfc? 好老舊 02/06 04:33
謝感樓上各位大大的熱心回覆! 想請問如果要將mutex具名 要如何在我現在的程式碼加入呢? 因為我自己試了些方法都還是無法達成 (還是整個架構就錯了>_<) 謝謝!! ※ 編輯: srxrrr (211.72.212.97), 02/06/2015 13:37:08
saxontai: MSDN: http://goo.gl/3t0bpr 02/06 17:43
saxontai: CMutex on MSDN: http://goo.gl/oJTof0 02/06 17:54
jaw109: 因為A與B並不是同一個mutex 02/06 22:13
謝謝大家的回覆! 我會再測試看看的!! 謝謝:D ※ 編輯: srxrrr (211.72.212.97), 02/10/2015 10:27:39