给个面子,一个菜鸟的初级问题!请各位大仙指点 看一下MSDN的帮助,这是加锁方法中最很简单的一个了.先声明一个CCriticalSection的变量,在你需要加锁的代码的地方Lock(),然后解锁的地方UnLock()就可以了. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是用api中的一些函数去除并行问题,其中最基本的就是临界扇区,其他还有互斥体,信号和事件比如:在线程中要用执行std::count<<"hello"<<::GetCurrentThreadId()<<std::endl;那么在有许多线程同时运行时,就会出现A线程还没有执行完B就开始显示了,这样出现了错误的结果,这时我们可以先定一个临界扇区: static CRITICAL_SECTION sm_cs; ::InitializeCriticalSection(&sm_cs); //初始化然后在需要同步的地方用::EnterCriticalSection(&sm_cs);//只允许一个线程进入此临界扇区std::count<<"hello"<<::GetCurrentThreadId()<<std::endl;::LeaveCriticalSectioN(&sm_cs);//退出临界扇区,以便让其他的线程可以进入 怎么实现.exe和.dll之间的通信? WMI 通过WIN32_PROCESSOR 的LOADPERCENTAGE 获取的CPU使用率大于100% 字符赋值问题。 求助关于位图扫描行数据的问题 打印机和磁卡问题? 关于OnTimer()和线程 。。(在OnTimer()里开线程能减小他的压力吗??) 在VC中怎样将一个字符串转换成float 我分明结帐了,为什么得分人所得的分数显示不出来? 请问在MFC中如何手动发送消息? (初学者提问)vc中bmp图像数组的显示方法 有"杭州电子工业学院"的吗?? 回答菜鸟的一个问题?对高手来说很容易的!
比如:在线程中要用执行std::count<<"hello"<<::GetCurrentThreadId()<<std::endl;
那么在有许多线程同时运行时,就会出现A线程还没有执行完B就开始显示了,这样出现了错误的结果,这时我们可以先定一个临界扇区:
static CRITICAL_SECTION sm_cs;
::InitializeCriticalSection(&sm_cs); //初始化
然后在需要同步的地方用
::EnterCriticalSection(&sm_cs);//只允许一个线程进入此临界扇区
std::count<<"hello"<<::GetCurrentThreadId()<<std::endl;
::LeaveCriticalSectioN(&sm_cs);//退出临界扇区,以便让其他的线程可以进入