如何等待ThreadState.Abort?

时间:2011-12-21 01:03:33

标签: c# .net multithreading

致电之前:

th.Abort();

我如何等待ThreadState成为ThreadState.Abort然后执行某些操作? 有可能吗?

2 个答案:

答案 0 :(得分:5)

你可以调用Thread.Join()(MSDN)。像这样:

th.Abort();
th.Join();

对Join()的调用将导致调用线程在继续之前等待该线程终止。

另外,如果你的工作线程与其他任何东西进行交互,你可能不应该调用Thread.Abort()。

答案 1 :(得分:1)

你可以做一个小循环来等待线程中止。

th.Abort();
while (th.ThreadState.HasFlag(ThreadState.Aborted))
    Thread.Sleep(0);
// Thread is aborted.