问下:同样的功能,在子线程中实现速度会慢很多吗?

小小蔷薇 2011-06-15 05:55:41
主线程是窗口,点击按钮后调用子线程,运行速度很慢。
原来这个子线程的功能是用控制台程序实现的,就单线程的程序,运行速度很快的。
各位有知道原因的吗?怎么去解决这个慢的问题
...全文
147 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
小小蔷薇 2011-06-16
  • 打赏
  • 举报
回复
PostMessage用这个函数发送消息的。


log起线程,好主意
majia2011 2011-06-16
  • 打赏
  • 举报
回复
发消息,自己去看post和send的区别
majia2011 2011-06-16
  • 打赏
  • 举报
回复
事情要分开做,工作可以起线程,写log也可以起线程
qingcairousi 2011-06-16
  • 打赏
  • 举报
回复
发送消息用的是什么函数?好像有一个线程专用的消息发送函数吧?试试那个?
小小蔷薇 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 super_admi 的回复:]
消息什么的,显示什么的,就都不要发送了。
想记录信息,以文件流的形式,写入文件中去吧。

是啊,就是写文件加发送更新窗口消息的。不过我觉得应该是这几个判断导致的速度变低
super_admi 2011-06-16
  • 打赏
  • 举报
回复
LOG文件。
ryfdizuo 2011-06-16
  • 打赏
  • 举报
回复
io也比较慢的。
super_admi 2011-06-16
  • 打赏
  • 举报
回复
消息什么的,显示什么的,就都不要发送了。
想记录信息,以文件流的形式,写入文件中去吧。

[Quote=引用 8 楼 zhll879 的回复:]
原因找到了,是在线程的循环读取文件时增加了判断,就是每循环一次,做一次判断
if()
写运行信息,发送窗口消息
else if
写运行信息,发送窗口消息
else if
写运行信息,发送窗口消息

速度差得好多啊
[/Quote]
小小蔷薇 2011-06-16
  • 打赏
  • 举报
回复
原因找到了,是在线程的循环读取文件时增加了判断,就是每循环一次,做一次判断
if()
写运行信息,发送窗口消息
else if
写运行信息,发送窗口消息
else if
写运行信息,发送窗口消息

速度差得好多啊
就想叫yoko 2011-06-15
  • 打赏
  • 举报
回复
创建线程有个优先级的参数
另外系统也会根据线程所做的事情调整优先级

你是不是该线程有的地方等待主线程的资源导致阻塞了
小小蔷薇 2011-06-15
  • 打赏
  • 举报
回复
子线程的功能就是检查文件,现在检查同样多的文件,时间差异很多。
这个怎么能知道程序哪里慢了呢?
Qlaiaqu 2011-06-15
  • 打赏
  • 举报
回复
你得找出来是哪里拖累了速度啊,肯定得有个地方占用了大量的资源。
quwei197874 2011-06-15
  • 打赏
  • 举报
回复
你同步出什么问题了吧
c_losed 2011-06-15
  • 打赏
  • 举报
回复
慢在打印输出上了?
还是慢在界面显示?
小小蔷薇 2011-06-15
  • 打赏
  • 举报
回复
是啊,原来的程序要运行40分钟吧,现在同样的情况下运行了1小时半,才完成%60
healer_kx 2011-06-15
  • 打赏
  • 举报
回复
不会吧?你有数据证明它慢了?

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧