zoukankan      html  css  js  c++  java
  • 如何退出C#多线成winform程序

    这是项目中碰到的问题。

    在网上查了下,网上提供的解决方法 :

          1,将主线程设置为后台进程。方法是将主线程的isBackground = true。据说,这样在关闭主程序时后关闭主线程,并关闭所有的线程。

          但是我这样做没有成功。

          2,有人列出了c#程序退出的几种方法:

                (1)Application.Exit()//好像只在主线程可以起作用,而且当有线程,或者是阻塞方法的情况下,很容易失灵。

                 (2) System.Environment.Exit(0) //无论在主线程或其它线程,都可以吧程序结束干净

         (3)Application.ExitThread();

    但是我发现(2)这个方法在.netFrame Work compact下是没有的我这样

    最后我的解决办法是:强制退出程序进程。代码如下:

    System.Diagnostics.Process tt = System.Diagnostics.Process.GetProcessById(System.Diagnostics.Process.GetCurrentProcess().Id);
                   
    tt.Kill();

    当然,这种方法很暴力。良好的程序设计应该是,所有的线程都有条件可以结束循环以退出(包括timer)。在程序退出时触发所有线程的终止条件。

  • 相关阅读:
    springboot自动装配原理
    @Inherited 注解的作用
    基础知识点:链表反转
    基础知识点:二叉树的层次遍历
    算法题:8、二进制中1的个数
    微服务_GPRC
    扎实基础_数据结构
    .net core3.0程序发布到linux+docker
    c#_安全漏洞总结
    IIS Express(电脑无管理员权限如何启用VS调试)
  • 原文地址:https://www.cnblogs.com/sail/p/2061928.html
Copyright © 2011-2022 走看看