多线程问题 我在对话框程序的初始化时创建了一个线程A,线程A执行的是一个循环的后台写文件操作,我想在程序中没有用户消息输入和其他线程运行的时候就执行线程A,请问我该怎么写程序以确定在什么时间执行线程A操作? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你要后台循环写文件,肯定是要用定时器咯?再另外设一个定时器B和一个bool类型的全局变量flag。在B的响应函数中判断,如果很久没有 WM_CHAR的话,就把flag值为false,说明这个时候没有用户输入。如果有输入,就将其值设为true。在执行线程A的定时器实现函数中对这个flag变量进行判断再执行线程A 判断IDLE状态,CYourApp::OnIdle()然后就启动线程A,开始执行... 同意楼上的也可以先创建线程,让它在那里等待可以断续工作的标志位,标志位在OnIdle里设置。 线程实现:void run(){while(flag){.....//你的后台写文件操作}}在OnIdle函数里面改变flag变量的值 在CWinApp::OnIdle里写,onidle空闲。 创建线程后,用SetThreadPriority将线程优先级设置为THREAD_PRIORITY_IDLE,或者适当提高一些。 顶!让系统来管理你的线程总会比自己好些!其实就算开个默认的优先及的线程也比用CWinApp::OnIdle 好,因为你既然用它了还用线程干嘛? 在窗口的Initial函数中启动线程就可以了 使用函数SetThreadPriority将线程的优先级设为THREAD_PRIORITY_IDLE。 求一个公网IP,做一个测试,就运行一个小段的TCP程序! 关于编辑框(Edit Box)如何实现多行显示求助 高手 想做连锁超市pos管理系统 treeCtrl添加右键选择 关于内存映射文件内容的检索 请问在sdi中怎样运行excel环境,并且怎样对它进行保存,导入 急:如何实现在该文档中显示按下键盘上的某个键的信息?为什么找不到OnChar函数 如何查找文件内容(类似于Windows中的搜索),感谢! 为何结果不对?? 32位win7上开发的dll 在32位的xp上运行失败! 重装操作系统,而不重新装vc,有没有好办法? 四数全排列(简便)??
在执行线程A的定时器实现函数中对这个flag变量进行判断再执行线程A
然后就启动线程A,开始执行...
也可以先创建线程,让它在那里等待可以断续工作的标志位,标志位在OnIdle里设置。
void run(){while(flag){.....//你的后台写文件操作}}在OnIdle函数里面改变flag变量的值
顶!让系统来管理你的线程总会比自己好些!其实就算开个默认的优先及的线程也比用CWinApp::OnIdle 好,因为你既然用它了还用线程干嘛?