我的代码中有一个线程嵌套在另一个线程中。在我的关闭事件中,我使用upperThread.Abort()
关闭面线。但是,我的代码被挂断了。我相信这是因为我lowerThread()
的仍在运行。如何关闭较低(嵌套)线程以正确关闭应用程序?
问问题
983 次
2 回答
0
Thread.Abort()
不推荐,但在极少数情况下仍可能需要。
这里有一个简单的例子:
var parent = new Thread(new ThreadStart(() =>
{
Thread child = null;
try
{
child = new Thread(new ThreadStart(() =>
{
// do stuff
}));
child.Start();
}
catch (ThreadAbortException)
{
if (child != null && child.IsAlive)
{
// Abort child when parent is aborted
child.Abort();
}
}
}));
parent.Start();
parent.Abort();
在MSDN上阅读有关 ThreadAbortException 的更多信息。
于 2017-03-16T12:16:13.733 回答
0
里面的面线你可以抓住ThreadAbortException
。它在线程中止时抛出。然后在 catch 语句中你可以中止你的内线程
于 2018-12-19T11:21:52.447 回答