zoukankan      html  css  js  c++  java
  • c#退出应用程序办法

    c#退出应用程序办法有

    Application.Exit();//好像只在主线程可以起作用,而且当有线程,或是阻塞方法的情况下,很容易失灵
    this.Close();//只是关闭当前窗体。
    Application.ExitThread();//退出当前线程上的消息循环,并关闭该线程上的所有窗口。 也会失灵
    Environment.Exit(0); //前面三种方法都不能很好的退出程序,此方法可以完全退出程序,这个要强制得多。
    Process.GetCurrentProcess().Kill();//此方法完全奏效,绝对是完全退出。

    一些操作可以关注:GC.Collect()

    另:

    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),在程序退出时触发所有线程的终止条件。

  • 相关阅读:
    iframe子页面获取父页面元素和window对象
    jQuery使用blur()方法触发两次的解决方法
    java使用freemarker生成word
    java实现下载文件
    IE11中实现颜色渐变
    MYSQL中INET_ATON()函数
    数据库SQL实战(1)
    MYSQL表中向SET类型的字段插入值时值之间不能有空格
    MYSQL表中设置字段类型为TIMESTAMP时的注意事项
    SQL中判断值是否为NULL
  • 原文地址:https://www.cnblogs.com/xuanfengling/p/3455225.html
Copyright © 2011-2022 走看看