Winform及WPF退出时各种报错的暴力解法【转】

在c#中退出WinForm程序包括有很多方法,如:
this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0); 等
1.this.Close();   只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出;
2.Application.Exit();  强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出;
3.Application.ExitThread(); 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题;
4.System.Environment.Exit(0);  这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。
--------------------- 
作者:Dina_p 
来源:CSDN 
原文:https://blog.csdn.net/Dina_p/article/details/77920867 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

WPF在退出的时候,如果部分线程仍在运行,强行执行App.ShutDown的话会报错,抛出任务取消异常。

暴力解法:Environment.Exit(0)

你可能感兴趣的:(C#)