MFC 多线程—— CMutex类使用
2016-11-15 23:29
330 查看
互斥对象可以在进程间使用,而临界区对象只能在同一进程的各个线程间使用。虽然互斥对象也可用于同一进程的各个线程间,但是在这种情况下,使用临界区对象会更节省系统资源,更有效率。
以CCriticalSection类的使用为例:
//定义全局CMutexhe CSingleLock类的对象
CMutex mutex;
CSingleLock singlelock(&mutex);
以CCriticalSection类的使用为例:
//定义全局CMutexhe CSingleLock类的对象
CMutex mutex;
CSingleLock singlelock(&mutex);
UINT WriteA(LPVOID pParam) { CEdit *pEdit = (CEdit*)pParam; pEdit->SetWindowText(_T("")); singlelock.Lock(); //锁定临界区,其他线程遇到singlelock.Lock()语句时要等待 //知道执行singlelock.Unlock()语句 for (int i = 0; i < 9; i++) { g_Array[i] = _T('A'); pEdit->SetWindowText(g_Array); Sleep(1000); } singlelock.Unlock(); return 0; } UINT WriteB(LPVOID pParam) { CEdit *pEdit = (CEdit*)pParam; pEdit->SetWindowText(_T("\0")); singlelock.Lock(); //临界区资源 for (int i = 0; i < 9; i++) { g_Array[i] = _T('B'); pEdit->SetWindowText(g_Array); Sleep(1000); } singlelock.Unlock(); return 0; }
相关文章推荐
- 【原创】使用MFC中的AfxBeginThread创建多线程
- MFC使用多线程时请谨慎使用srand()来产生随机数
- 多线程在C、Win32和MFC下的使用方法
- MFC中使用boost::bind进行多线程编程的一种方法
- VC++中的C运行时库浅析(控制台程序默认使用单线程的静态链接库,而MFC中的CFile类已暗藏了多线程)
- TRACE 的使用(MFC,多线程)
- C++ MFC 中使用多线程操作实例
- MFC(1)什么时候该使用多线程
- MFC使用多线程时请谨慎使用srand()来产生随机数 .
- MFC中 使用多线程实现语音播放功能
- MFC_多线程的使用
- settimer 设置的时间间隔不精确问题,mfc使用多线程播放视频
- MFC 多线程下使用UpdateData的方法
- MFC下多线程与消息机制的结合使用
- 关于MFC使用和多线程随笔--对初学者可能有点作用
- 使用MFC中的AfxBeginThread创建多线程
- 多线程在C、Win32和MFC下的使用方法
- MFC 在回调函数中使用成员或控件(多线程)
- 使用MFC中的AfxBeginThread创建多线程
- 多线程在C、Win32和MFC下的使用方法