private void form1_Click(object sender, EventArgs e)
        {
            Timer RQ_Time = new Timer();
            RQ_Time.Interval = 10000;
            RQ_Time.Tick += new EventHandler(RQ_Time_Tick);
            RQ_Time.Start();
            while(!exitFlag)
{
   if(a==true)
   {
       dosomething;
    }
    thread.sleep(200);
}
}

解决方案 »

  1.   

     timer1.Enabled = true;
      

  2.   

    System.Windows.Forms.Timer是基于消息的。你进入tick事件就阻塞了当前的消息循环,
    try
    private void form1_Click(object sender, EventArgs e)
    {
    Timer RQ_Time = new Timer();
    RQ_Time.Interval = 10000;
    RQ_Time.Tick += new EventHandler(RQ_Time_Tick);
    RQ_Time.Start();
    while(!exitFlag)
    {
    Application.DoEvents();
    if(a==true)
    {
    dosomething;
    }
    thread.sleep(200);
    Application.DoEvents();
    }
    }
      

  3.   


     timer1.Enabled = true;