社区
Delphi
帖子详情
关于动态创建多线程
vivehua
2009-10-29 09:32:19
类似一个下载工具。
在一个LISTVIEW中,每添加一个下载任务,创建一个线程去下载。
请问该如何去管理创建出的多个现程?
如果LISTVIEW中的任务被用户取消,线程需要FREE。如何管理每个线程与LISTVIEW的关系?
...全文
118
9
打赏
收藏
关于动态创建多线程
类似一个下载工具。 在一个LISTVIEW中,每添加一个下载任务,创建一个线程去下载。 请问该如何去管理创建出的多个现程? 如果LISTVIEW中的任务被用户取消,线程需要FREE。如何管理每个线程与LISTVIEW的关系?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
贝隆
2009-11-03
打赏
举报
回复
顶
jwman
2009-11-03
打赏
举报
回复
线程局部存储和api为线程提供同步的方法
jwman
2009-11-03
打赏
举报
回复
同意
无语孩童
2009-11-02
打赏
举报
回复
推荐用 TThreadList
KevinLau2016
2009-11-02
打赏
举报
回复
同意4樓
wxieyang
2009-10-31
打赏
举报
回复
其实,我觉得,问题不在于你用什么保存这些线程列表,而在于你需要一套完善的通知体系。
当线程结束之后,你需要通知主线程,而主线程停止某个线程时,你需要通知这个线程。
子线程通知主线程(最简单的就是使用线程的Synchronize方法)的时候,把当前线程的self传给主线程,主线程得到通知后,在你的listview中查找这个线程,找到后就设置其下载结束(或者在列表中删除)并释放这个线程。
主线程结束子线程则简单多了,直接Free就是了,线程的Free过程会自动停止当前线程的。
子线程创建的时候,不要指定完成时自动释放这个属性。
listvisew添加任务的时候 ListView.AddItem('任务名称', TWorkThread.Create);
而,查找则可以根据线程传回来的self同ListView.items.Objects[]中保存的线程比对。
这里不涉及到多线程访问同一个数据的问题,隐藏不需要使用 TThreadList
gyk120
2009-10-29
打赏
举报
回复
TThreadList可以创建一个线程列表,管理程序创建的线程
bdmh
2009-10-29
打赏
举报
回复
TThreadList
wxsan
2009-10-29
打赏
举报
回复
建议看看这个:http://www.cppblog.com/Khan/archive/2006/11/21/15503.html,里面有关于多线程的内容。
Think in Java(中文版)-chm格式
第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重新使用接口 1.5.1 改善基础类 1.5.2 等价和类似关系 1.6 多形对象的互换使用 1.6.1 动态绑定 1.6.2 抽象的基础类和接口 1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9
多线程
1.10 永久性 1.11 Java和因特网 1.11.1 什么是Web? 1.11.2 客户端编程 1.11.3 服务器端编程 1.11.4 一个独立的领域:应用程序 1.12 分析和设计 1.12.1 不要迷失 1.12.2 阶段0:拟出一个计划 1.12.3 阶段1:要制作什么? 1.12.4 阶段2:开始构建? 1.12.5 阶段3:正式创建 1.12.6 阶段4:校订 1.12.7 计划的回报 1.13 Java还是C++?
Python
多线程
(一)——创建
多线程
python创建
多线程
。 1.通过 threading.Thread () 创建 2.通过继承 threading.Thread 类的继承
Qt创建
多线程
的两种方法
来源:https://github.com/czyt1988/czyBlog/tree/master/tech/QtThread 1.摘要 Qt有两种
多线程
的方法,其中一种是继承QThread的run函数,另外一种是把一个继承于QObject的类转移到一个Thread里。 Qt4.8之前都是使用继承QThread的run这种方法,但是Qt4.8之后,Qt官方建议使用第二种方法。两种方法区别不大...
Java
多线程
之四种方法创建线程
创建
多线程
常用的方法有四种,继承Thread、实现Runnable接口、使用Callable和FutureTask和线程池
springboot创建及使用
多线程
的几种方式
在数据处理中,
多线程
用到的场景很多,在满足计算机CPU处理能力的情况下,使用
多线程
可以明显提高程序运行效率,缩短大数据处理的能力。作为java程序开发,离不开spring,那么在spring中怎么创建
多线程
并将注册到spring的类在
多线程
中使用呢?我自己总结了一下,可以有两种方式,使用线程池和spring自带
多线程
注解使用。 使用线程池 我一般使用固定线程数量的线程池,假如数据量很大,我会将...
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章