using System.ThreadingThread thread = new Thread(new ThreadStart( DoSomethingOnAThread )); 
thread.Start();
...
if ( thread.IsAlive ) 

     thread.Abort(); 
}

解决方案 »

  1.   

    Thread.Abort可以用于取消线程。
    但是这种方法不是很好,一方面线程具体的结束时间不能确定(需要进行一些清理工作);一方面,无法得知Thread具体执行到哪里,这是很危险的。
    所以,比较好的办法仍然是通过线程通信方式,由线程自行终止。
      

  2.   

    I agree, but I guess Thread.Abort fits his requirement, :-)
      

  3.   

    ManualResetEvent.Set
    ManualResetEvent.Reset