线程和定时器是相对独立运行的,虽然你仪超过5秒了,但你接着一运行后,定时器检测到时间已超过5秒了,就又建立线程了,这样就不是一个线程在运行(前一个线程还没运行完),而是多个线程在运行,然后线程运行到结束退出

解决方案 »

  1.   

    定时器超时了又触发新的一个线程了。这种情况不要用断点,通过Log日志来分析运行时的情况
      

  2.   

    在多线程情况下,断点调试比较难用。用日志的方式来获取线程执行情况吧。
      

  3.   

    LS给出了答案,超时的时候定时器重开了线程,不在一个工作调度下了,所以后面的不执行
      

  4.   

    这个你不需要纠结,不做控制的话多线程的时候你看到的效果就是这样的你可以使用线程互斥机制,这样就和你想要的差别不大了
      

  5.   

    定时器在调试的时候依然还在运行的哦,比如你第一次进入断点开始停留,那么定时器依然在运行,再过五秒钟又调用一次函数。如果你在断点停留超过你设置的时间,那么程序会在后台运行你的下一个定时器函数。