如何确保在关闭主窗口后所有程序线程都会中止?
如何确保在关闭主窗口后所有程序线程都会中止?
ManualResetEvent
来发出关闭信号另请参阅:http://msdn.microsoft.com/en-us/library/7a2f3ay4(v=vs.80).aspx
请尝试
Application.ExitThread();
Environment.Exit(0);
Dispatcher.CurrentDispatcher.Thread.Abort();
将它们收集到某个地方,比如
static public List<Thread> AllThreads;
使用该集合逐个调用.Abort()
方法来终止它们。
这是一种困难且错误的方式。更好的方法是以某种方式通知它们停止,然后逐个调用.Join()
方法。
.Abort()
吗?.Terminate
不存在。 - Kieren JohnstoneAllThreads.ForEach(t => t.Abort());
呢? - Kieren Johnstone将IsBackground
属性设置为true,并添加以下行:
AppDomain.CurrentDomain.ProcessExit += CloseMe; // for the main process
AppDomain.CurrentDomain.DomainUnload += CloseMe; // for ApplicationDomains
CloseMe
方法设置一个标志,在线程的主循环中进行检查。