急....关于一个线程的问题(大侠请进)(100)

  • 主题发起人 hong_511
  • 开始时间
H

hong_511

Unregistered / Unconfirmed
GUEST, unregistred user!
我自己写了一个线程,线程函数是一个while truedo
begin
end 的死循环, 当程序启动时创建这个线程, 但是发现程序执行不等的时间后,这个线程函数里的循环体不执行了,(这个循环体主要是来解析串口收到的数据.),我调试后发现当出现这种情况时,我调试进入串口接收事件中,这个循环体又重新执行了,线程也没有重新再建,只是进入串口接收事件中调试一下就可以了,但是运行一段时间后又会出现这样的情况.这个现象很奇怪,有没有哪位大侠知道原因或是碰到过类似的情况呢?
 
读串口数据时阻塞了。
 
地质灾害, 你好, 读串口数据阻塞时会影响其它线程的运行吗? 这个线程是在程序一启动的时候就创建的一直到程序关闭才会被释放.如果是这个原因的话,那应当怎么解决呢?
 
应该在读数据调用上设置个超时机制,假如在6s内没有收到数据,就continue。循环再次开始,总比阻塞在那里死磕要好。可以参考 TwinSocketStream 的 waitfordata 方法。
 
顶部