读书人

像迅雷那样的最多同时执行5个任务

发布时间: 2012-03-29 12:53:12 作者: rapoo

像迅雷那样的,最多同时执行5个任务,怎么设计啊
想做个多线程执行任务的小程序,要求和迅雷差不多,比如最多同时执行5个任务,而我有8个任务
我现在是一开始创建5个线程,那么执行完毕的肯定就free了,然后重新利用该线程启动一个新任务,现在就是不知道怎么判断这个线程是否完全free了,我的方法是随便访问一下该线程,如果出错就是free了,但是这样做是不是不太好啊?

Delphi(Pascal) code
try  if trd.running=false then bQuit:=true;except  bQuit:=true;end;


[解决办法]
设置信号量
[解决办法]
为什么会执行完呢?如果真的执行完了,为什么他就应该free啊
[解决办法]
维护一个任务列表不就行了吗
[解决办法]
三篇关于线程的文章,希望对你有帮助:

http://blog.csdn.net/linzhengqun/archive/2006/01/07/572557.aspx
http://blog.csdn.net/linzhengqun/archive/2006/02/06/593229.aspx
http://blog.csdn.net/linzhengqun/archive/2006/03/30/643822.aspx
[解决办法]
ForegroundTask函数可用于检测当前线程是否正在运行。
[解决办法]
简单一点的就是任务管理,复杂一点的用线程池。

读书人网 >.NET

热点推荐