button控件 Enable属性 在起线程下出现的奇怪问题。请指教!
我的做法是这样的。Button1按钮 
 private   void   Button1_Click(object   sender,   System.EventArgs   e) 
 { 
 Button1.Enabled   =   false; 
 Thread   tnew   =   new   Thread(new   ThreadStart(SetFormula)); 
 									tnew.Start();//起线程计算我的方法 
 Button1.Enabled   =   true; 
 }   
 目的就是点击按钮变成不可用同时计算,计算完成后使按钮变为可用。 
 我没用线程时可以达到我要的效果,但是用了线程后,一闪一下按钮就又变成可以使用了,请问怎么做才能让我既能用线程同时Enable也能按照我的想法进行执行。
------解决方案--------------------public void SetFormula() 
 { 
     Thread.Sleep(5000); // 模拟执行的过程   
     Invoke(new EventHandler(DoInvoke)); // 执行完后恢复 
 }   
 private void DoInvoke(object sender, EventArgs e) 
 { 
     button1.Enabled = true; 
 }   
 private void button1_Click(object sender, EventArgs e) 
 { 
     button1.Enabled = false; 
     Thread tnew = new Thread(new ThreadStart(SetFormula)); 
     tnew.Start();//起线程计算我的方法 
 }