这个fun是timer中调用的吗?业务方法中有没有可能return 或出现异常?

解决方案 »

  1.   

    fun是我在自己创建的线程上调用的,然后通过timer的tick事件根据一定的条件来启动自己创建的线程
      

  2.   

    你确定程序运行到这个
    private void fun() 

      timer1.enabeld=false;  (正确停止检测) 
      ...............        (自己的业务方法) 
      timer1.enabled=true;    (不能启动检测) 

    打个断点看是否运行到了
      

  3.   

    下断点了,查看timer1.enabeld的状态也为true,然后我专门在tick事件里断下,就是断不到
      

  4.   

    我现在自己考虑到的问题是不是在其他的线程里不能操纵timer控件啊
      

  5.   

    System.Windows.Forms.Timer 在主线程初始化,Win Form application对于控件的操作有严格的异步控制。这种情况下,你的调用需要遵循UI异步调用的模式而非简单的直接操作。如果你的Fun函数定义在你的Form类中,可以直接用如下代码替换timer1.enable = true;
    this.Invoke(new Action(() => { timer1.Enabled = true; }));如果定义在不同类中,建议使用事件,在事件出发的函数中调用如上代码段。
      

  6.   

    你不能在线程中使用System.Windows.Forms.Timer
    这个需要消息泵驱动,你可以用System.Timer.Timer
    和System.Thread.Timer