社区
进程/线程/DLL
帖子详情
UI线程能够使用线程池么?
jonezheng
2005-09-03 12:55:17
如题
我写了一个线程池,但只是针对work线程的
现在我想让它支持UI线程,可以么?
...全文
235
15
打赏
收藏
UI线程能够使用线程池么?
如题 我写了一个线程池,但只是针对work线程的 现在我想让它支持UI线程,可以么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
horris
2006-04-19
打赏
举报
回复
对于楼主的这种需求,想要用多个线程处理socket,完全可以用I/O完成端口办到:
1。先建一个UI线程,用CreateIoCompletePort生成一个完成端口;
2。在UI线程里listen,建立与客户端的连接和用于接收的数据套接字。
3。然而以后与客户端的通信,则可以通过PostQueuedCompletionStatus(参数为与客户端通信的socket)发给线程池,线程池中的线程用GetQueuedCompletionStatus获得通知和socket,进行实际的通信或处理。
这样做效率很好。
也许你觉得这样太复杂,实际上大多数服务端程序都是这样做的。注意一个socket是对整个进程都有效的,所以可以在线程间安全地传递它。所以你还可以用其它的方式,用UI线程接收连接请求,建立socket,以后的通信让线程池里的线程去处理。
runi
2005-12-02
打赏
举报
回复
楼主的线程池是怎么写的?主线程如何控制池中各个线程的状态呢?指教指教吧!多谢
rfa
2005-12-02
打赏
举报
回复
UI线程肯定是要给Windows用某种方法注册一下的,不然每个进程都可以有无数个线程(理论上),那么Windows到底要把消息发给谁?难道挨个发一遍??!
rfa
2005-12-02
打赏
举报
回复
线程绝对不是简单的写个消息循环就变成了UI线程了,这一点大伙切记!不然你让一个WorkerThread编程一个UI Thread我看看
jonezheng
2005-09-12
打赏
举报
回复
明白了
可以不用线程池
但是我做网络,客户端来一个连接服务器就要创建一个UI线程
因为我要用到socket类的各种消息响应,如:OnReceive,好像用那个工作者线程不行吧
nelsonc
2005-09-07
打赏
举报
回复
不知道楼主使用UI线程池要达到什么目的。
一般程序中都只有一个UI线程。多个UI线程的还没见过,不是说不可以做,而是多个UI线程根本就没有必要。
feelmoon
2005-09-07
打赏
举报
回复
krh2001(边城浪子)说的好!楼猪看明白没?
jerry
2005-09-06
打赏
举报
回复
线程池嘛,是管理一组线程,池里应该包含一些正在工作的线程和一些空闲的线程,当有任务时,线程池管理就选一个空闲的线程去处理任务,张程处理完后又变成空闲状态,回到线程沁池.
UI线程大家都说了,是一个消息循环,它始终在运行,不存在空闲和忙之分(至少不是象工作线程那样分的)所以不好用线程池的方式来管理. 既然所有的线程都在运行,都是在进行自身的调度,就没有必要使用线程池了.
oyljerry
2005-09-04
打赏
举报
回复
UI线程单独控制
线程池控制work thread比较好
jonezheng
2005-09-03
打赏
举报
回复
只要在线程中有消息循环,不就成了UI线程了么?
这个我也知道
我现在就是想能不能用线程池对UI线程进行管理
DentistryDoctor
2005-09-03
打赏
举报
回复
没听说过UI线程池。
线程池就线程池嘛,只要在线程中有消息循环,不就成了UI线程了么?
吹泡泡的小猫
2005-09-03
打赏
举报
回复
UI线程从windows底层上讲和work线程没有区别
jonezheng
2005-09-03
打赏
举报
回复
到底有哪些不好,大伙可不可以说得详细点?
dirdirdir3
2005-09-03
打赏
举报
回复
这样做不好。
jerry
2005-09-03
打赏
举报
回复
我觉得这个思路有问题。线程池用来处理事务。本身跟UI应该无关的,UI线程用这种方式工作似乎不大正常
PyQt5中多
线程
模块QThread和
线程
池
ThreadPoolExecutor解决PyQt5界面程序执行比较耗时操作无响应问题
1.资源简介:PyQt5中
使用
多
线程
模块QThread解决了PyQt5界面程序执行比较耗时操作时,程序卡顿出现的无响应以及界面输出无法实时显示的问题,采用
线程
池
ThreadPoolExecutor解决了ping多个IP多任务耗时问题。...
多
线程
的
使用
-一个
线程
池
的Demo
一个带有
UI
界面的、简单的、
线程
池
的
使用
,主要应该于多个
线程
的管理与同步,以及对多个任务队列的操作
.Net 多
线程
详解
• 所有进程
使用
一个共享的
线程
池
,还是每个进程
使用
独立的
线程
池
? • 为什么不要手动
线程
池
设置最大值? • .Net
线程
池
有什么不足? 同步 • CLR怎样实现lock(obj)锁定? • WaitHandle是什么,他和他的派生类怎么...
权威.NET多
线程
详解(源码示例)
• 所有进程
使用
一个共享的
线程
池
,还是每个进程
使用
独立的
线程
池
? • 为什么不要手动
线程
池
设置最大值? • .Net
线程
池
有什么不足? 同步 • CLR怎样实现lock(obj)锁定? • WaitHandle是什么,他和他的派生类怎么...
.net
线程
详解 基础篇
* 所有进程
使用
一个共享的
线程
池
,还是每个进程
使用
独立的
线程
池
? * 为什么不要手动
线程
池
设置最大值? * .Net
线程
池
有什么不足? 同步 * CLR怎样实现lock(obj)锁定? * WaitHandle是什么,他和他的派生类怎么...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章