[问题] 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