做了个System.Timer.timer定时器,设定为t,当t启动时,每过几秒执行方法A,方法A的运行时间较长,
我在方法A正在运行的时候关闭t,但是A仍然在运行。
怎么样才能在t关闭是同时关闭正在执行的线程A哦? 感谢!定时器线程

解决方案 »

  1.   


            private void timer1_Tick(object sender, EventArgs e)
            {
                timer1.Enabled = false;
                //A操作
                timer1.Enabled = true;
            }
      

  2.   

    如果A是个线程,那没必要用timer,线程中自己可以延时
      

  3.   


    private static object LockObject = new Object(); 
    private static int CheckUpDateLock = 0;
    System.Timers.Timer t = new System.Timers.Timer();
    private void LoginFrm_Load(object sender, EventArgs e)
    {
        t.Elapsed += new System.Timers.ElapsedEventHandler(A);
        t.AutoReset = true;
        t.Interval = 1000;
    }private void btnStart_Click(object sender, EventArgs e)
    {
        t.Enabled = true;
        Thread.Sleep(5000);
        t.Enabled = false;
    }public void A(object source, System.Timers.ElapsedEventArgs e)
    {
        lock (LockObject)
        {
            if (CheckUpDateLock == 0) CheckUpDateLock = 1;
            else return;
        }
        Thread.Sleep(10000);
        MessageBox.Show('似乎还在运行...');
        lock (LockObject)
        {
            CheckUpDateLock = 0;
        }
    }
    执行btnStart后,依然还会有提示框。。
      

  4.   


    您好,A是定时器t引发的方法,我将定时器t关闭了,但是A方法还在运行,我想让A方法立即停止,不再执行,能做到么。
      

  5.   

    生明一个线程变量(thread td)做为定时器方法里引发的线程,停止时使用td.Abort();
      

  6.   

    a方法在计时器里用thread来做,停止计时器时,同时退出thread