在线程中执行长时间的循环是否可行?(50分)

  • 主题发起人 delphibbsme
  • 开始时间
D

delphibbsme

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在buttonStart.click里创建几个线程,让这些线程各自对相应的串口收到的数据做出反应,等达到一定条件后结束所有线程,然后再触发下一步操作,为此我在线程里使用条件循环,不知道这样做是否可行?
 
可是可行,不过你必须对线程的运行状态控制得比较好,还有在单处理器的情况下线程不能用得太多.
 
什么叫“必须对线程的运行状态控制得比较好”?能细说一下吗?我在调试中用单步调试总是出现CPU100%的情况,而且运行的流程很怪,上窜下跳,用run的话,总会有一个线程好像没执行似的。
 
就是让你适当的等待,如等待内核对象,等待消息到达,SLEEP等。
死循环轮询,CPU一下就完了。
 
不会调试啊....
 
在多线程中尽量用私有变量
串口可以使用异步函数,通过内核对象来处理
CPU就不会占用那么高了
也不会乱跳了
 
顶部