在程序中有个 Timer 
而我要在另一个线程中触发一个条件 此条件状态为true时 Timer停止
 为false 时 Timer 再开始工作试过好多方法都无法实现  请各位老大支支招!!!!!!

解决方案 »

  1.   

    用两个Timer,一个Timer1执行主要业务,另一个Timer2监控这个Timer1,Timer2判断,如果Timer1正在执行并且Status为False的时候就Timer1.Stop(),如果Timer1状态是Stop并且Status= true的时候就Timer1.Start()
      

  2.   

    关键问题是 Stop之后 无法Start  我不知道什么原因
      

  3.   

    Timer.Enable = trueTimer.Enable = false
      

  4.   

    不会吧,应该可以的
    IF(TIMER1.ENABLE==TRUE)
    {}你也可以写方法的,PUBLIC VOID BOOLTIME(TIMER TIMER)
    {
    IF..ELSE }
      

  5.   

    不能用Stop() 线程停止后是无法再次Star() ,Timer中的Enable属性应该可以 
      

  6.   

    我试过用Enable 也false以后true   Timer还是不能正常运行
      

  7.   


    就是用Enabled属性if(Enabled==true)
    {
    Enabled=false;
    }
    else
    {
    Enabled=true
    }
      

  8.   

    我估计你最难的是线程之间的调用问题,因为一般是不允许在一个线程中调用另一个线程。事实上timer组件在创建的时候,开了一个线程,这样你在自己的线程中不能直接调用timer组件进行操作。不过微软给出了再线程中调用其他组件的方法Invoke。
    例如:void test()
    {
        bool flag=false;
        object[] plist = new object[] { flag, System.EventArgs.Empty };
        timer.BeginInvoke(new System.EventHandler(TimerThread), plist);
    }
    void TimerThread(object i, EventArgs e)
    {
       bool flag=(bool)i;
       if(flag)
        {
           timer.Start();
        }
       else
        {
           timer.Stop();
        }}