MFC信号量使用指南
DEMO程序:TestSemaphore_DEMO.rar

---关键代码如下---
void CTestSemaphoreDlg::OnBnClickedButtonThread1()
{
// TODO: 在此添加控件通知处理程序代码
AfxBeginThread((AFX_THREADPROC)thread1WriteA, this);
} void CTestSemaphoreDlg::OnBnClickedButtonThread2()
{
// TODO: 在此添加控件通知处理程序代码
AfxBeginThread((AFX_THREADPROC)thread2WriteB, this);
} void CTestSemaphoreDlg::OnBnClickedButtonThread3()
{
// TODO: 在此添加控件通知处理程序代码
AfxBeginThread((AFX_THREADPROC)thread3WriteC, this);
} UINT CTestSemaphoreDlg::thread1WriteA( LPVOID pParam )
{
CTestSemaphoreDlg* pThis = (CTestSemaphoreDlg*)pParam;
pThis->WriteA();
return ;
} void CTestSemaphoreDlg::WriteA()
{
CString str;
g_semaphore.Lock();
for (int i=; i<; i++)
{
Sleep();
m_editDisp.GetWindowText(str);
str += "A";
m_editDisp.SetWindowText(str);
}
g_semaphore.Unlock();
} UINT CTestSemaphoreDlg::thread2WriteB( LPVOID pParam )
{
CTestSemaphoreDlg* pThis = (CTestSemaphoreDlg*)pParam;
pThis->WriteB();
return ;
} void CTestSemaphoreDlg::WriteB()
{
CString str;
g_semaphore.Lock();
for (int i=; i<; i++)
{
Sleep();
m_editDisp.GetWindowText(str);
str += "B";
m_editDisp.SetWindowText(str);
}
g_semaphore.Unlock();
} UINT CTestSemaphoreDlg::thread3WriteC( LPVOID pParam )
{
CTestSemaphoreDlg* pThis = (CTestSemaphoreDlg*)pParam;
pThis->WriteC();
return ;
} void CTestSemaphoreDlg::WriteC()
{
CString str;
g_semaphore.Lock();
for (int i=; i<; i++)
{
Sleep();
m_editDisp.GetWindowText(str);
str += "C";
m_editDisp.SetWindowText(str);
}
g_semaphore.Unlock();
}
通过本教程可以迅速学会使用MFC中信号量的运用!
MFC信号量使用指南的更多相关文章
- MFC 多线程及线程同步
一.MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程.二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环. 工作者线程没有消息机制,通常 ...
- 《linux性能及调优指南》 3.5 网络瓶颈
3.5 Network bottlenecks A performance problem in the network subsystem can be the cause of many prob ...
- CPP-基础:信号量
windows api 多线程---信号量 信号量(Semaphore)和互斥量一样,属于内核对象.它自动执行可用资源查询的测试,如果有可用资源,则可用资源的计数减少1,从而避免其它线程请求资源.当该 ...
- mfc小工具开发之定时闹钟之---多线程急线程同步
一.MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程.二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环. 工作者线程没有消息机制,通常 ...
- Visual C++线程同步技术剖析:临界区,时间,信号量,互斥量
使线程同步 在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作.更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解.正常情况下对这种处理结果的了解应当在其 ...
- MFC中的CString类使用方法指南
MFC中的CString类使用方法指南 原文出处:codeproject:CString Management [禾路:这是一篇比较老的资料了,但是对于MFC的程序设计很有帮助.我们在MFC中使用字符 ...
- MFC学习指南大纲
最近一直在做MFC的项目,顺便学习一下以下MFC核心知识吧: 大纲: 1. 消息队列 2. send message 3. post message 4. 面向对象编程 5. 指针 一个一个来学习哈.
- 并发编程-concurrent指南-信号量Semaphore
Semaphore翻译成字面意思为 信号量,Semaphore可以控同时访问的线程个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可. acquire( ...
- mfc通过信号量保证线程同步
1.声明一个全局handle,记住在cpp里也声明 extern HANDLE uiHandle; 2.创建信号量 uiHandle = CreateSemaphore(NULL,1,1,NULL); ...
随机推荐
- 阿里云ECS服务器自定义端口无法访问问题记录
记住阿里云ECS服务器有个安全组!!! 购买了阿里云服务器的时候,购买界面那里是可以勾选默认的几个端口是否开启的,服务器默认勾了22端口,使用户能登录服务器. 当我们在服务器里面配置nginx,开启自 ...
- OC MRC之autorelease问题(代码分析)
// // main.m // 08-autorelease // // Created by apple on 13-8-9. // Copyright (c) 2013年 itcast. All ...
- windows下python安装Numpy、Scipy、matplotlib模块
来源http://blog.csdn.net/Katrina_ALi/article/details/64922107 http://blog.csdn.net/qq_16633405/article ...
- PHP:第三章——PHP中的回调函数
<?php header("Content-Type:text/html;charset=utf-8"); //回调函数 //计算两个数只和 function Add($a, ...
- Delphi XE Starter Essentials 中文目录
Table of Contents1. Delphi XE Starter IDE 1Delphi and C++Builder ................................... ...
- TMemo的ScrollBars属性和大文本
给TMemo.Text := '几M大的文本'; 如果 ScrollBars 不是 sbBoth的话,程序很可能 无响应. 今天郁闷了半天才发现的.
- 2.2 C++类的成员变量和成员函数
参考:http://www.weixueyuan.net/view/6334.html 总结: 类成员的声明和定义: 类成员函数的定义分类内定义(内联)和类外定义(可用 inline 关键字 强制转换 ...
- 向ACCESS数据库中的表导入EXCEL表,在 System.Data.OleDb.OleDbException 中第一次偶然出现的“System.Data.dll”类型的异常
向ACCESS数据库中的表导入EXCEL表,EXCEL表Sheet1中与ACCESS数据库表中的关键字对应的列的值,不能与数据库中表的主键项值重复,不然就会出现 在 System.Data.OleDb ...
- SWIFT中正则表达式验证邮箱
在playground内写入以下代码,正则关键字跟其它语言的没什么区别 class Regex { let internalExpression:NSRegularExpression let pat ...
- 查看Linux下系统资源占用常用命令
一 top命令 1.作用top命令用来显示执行中的程序进程,使用权限是所有用户. 2.格式top [-] [d delay] [q] [c] [S] [s] [i] [n] 3.主要参数d:指定更新的 ...