首页 新闻 赞助 找找看

MFC中线程池的任务怎么写?

0
[待解决问题]

线程池的应用是为了多任务处理,那么多任务一般是放在任务队列。想知道每个任务应该怎么写?

IT-famer的主页 IT-famer | 菜鸟二级 | 园豆:206
提问于:2014-05-26 11:45
< >
分享
所有回答(1)
0

一般定义个任务接口.队列泛型就是这个接口类型.任务接口中有一个任务入口方法,比如run啊什么的

在线程池处理的时候,调用出队元素的run方法

吴瑞祥 | 园豆:29449 (高人七级) | 2014-05-26 11:46

能不能用代码表现一下呢?就简单的框架就好了。还有,线程池的创建和使用的过程是怎么样的呢?我看这方面的资料看了好几天都没理出一个思路来,还是不知道怎么下手去写。

就像我现在遇到的问题:

我做了一个MFC程序,有几个对话框(DLG),每个DLG上都有数据库增删改查的功能,我想将每个DLG上的增删改查功能做成任务(task),进入任务队列,然后统一让线程池去执行这些任务,应该怎么实现?

支持(0) 反对(0) IT-famer | 园豆:206 (菜鸟二级) | 2014-05-27 08:27

@IT-famer: 设计一个任务队列类就行的`,之前有做过,不过代码是原来公司,不好直接贴.

这里说说重点.

1.任务队列,就是一个队列,里面的元素就是任务对象,

2.任务对象全部集成自任务接口,任务接口中只有一个run方法

3.任务处理线程,这个一定是要另开一个线程的.

4.任务处理线程里运行任务时一定要try起来,保证任务执行线程不会中断,

5.一个start方法,用来启动任务处理线程

6.任务处理间隔也要,比如队伍队列空时休息1秒钟这样.

7.一般还要加一个停止的标识.任务执行线程中要根据这个标识来判断是否执行,如果为false也可以暂停1秒钟这样

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2014-05-27 10:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册