方法的作用是:终止线程。如果未完成中止操作,则引发ThreadAbortException。
using System;
using System.Threading;
public class MyThread
{
public void Thread1()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);
Thread.Sleep(200);
}
}
}
public class ThreadExample
{
public static void Main()
{
Console.WriteLine("Start of Main");
MyThread mt = new MyThread();
Thread t1 = new Thread(new ThreadStart(mt.Thread1));
Thread t2 = new Thread(new ThreadStart(mt.Thread1));
t1</span><span class="pun">.</span><span class="typ">Start</span><span class="pun">();</span><span class="pln">
t2</span><span class="pun">.</span><span class="typ">Start</span><span class="pun">();</span><span class="pln">
</span><span class="kwd">try</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
t1</span><span class="pun">.</span><span class="typ">Abort</span><span class="pun">();</span><span class="pln">
t2</span><span class="pun">.</span><span class="typ">Abort</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">catch</span><span class="pln"> </span><span class="pun">(</span><span class="typ">ThreadAbortException</span><span class="pln"> tae</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="pln">tae</span><span class="pun">.</span><span class="typ">ToString</span><span class="pun">());</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"End of Main"</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
}
输出:
输出不可预测,因为线程可能处于运行状态。
Start of Main 0 End of Main