请问BackgroundWorker线程能随时中止么?
比如 
                         void   workerThread_DoWork(object   sender,   DoWorkEventArgs   e) 
                         { 
                                     Thread.Sleep(1000000); 
                         } 
 能随时直接中止掉么?还是一定要Sleep完才能操作?
------解决方案--------------------参见MSDN:   
 BackgroundWorker.CancelAsync 方法  
 请求取消挂起的后台操作。  
 CancelAsync 提交终止挂起的后台操作的请求,并将 CancellationPending 属性设置为 true。   
 调用 CancelAsync 时,辅助方法可以停止其执行并退出。辅助代码应定期检查 CancellationPending 属性,查看是否已将该属性设置为 true。   
 请注意,DoWork 事件处理程序中的代码有可能在发出取消请求时完成其工作,轮询循环可能会错过设置为 true 的 CancellationPending。在这种情况下,即使发出了取消请求,RunWorkerCompleted 事件处理程序中 System.ComponentModel.RunWorkerCompletedEventArgs 的 Cancelled 标志也不会设置为 true。这种情况被称作争用状态,它是多线程编程中的常见问题。有关多线程设计问题的更多信息,请参见托管线程处理的最佳做法。   
 下面的代码示例演示如何使用 CancelAsync 方法取消异步(“后台”)操作。   
 private void cancelAsyncButton_Click(System.Object sender,  
     System.EventArgs e) 
 {    
     // Cancel the asynchronous operation. 
     this.backgroundWorker1.CancelAsync();   
     // Disable the Cancel button. 
     cancelAsyncButton.Enabled = false; 
 }   
------解决方案--------------------BackgroundWordker 是等代码执行完了再重新计时. 
 Timer 是不管代码执行情况,到时间都会触发.