【问题标题】:Application process not ending when I close the form? (C#)关闭表格后申请流程没有结束? (C#)
【发布时间】:2011-09-18 07:23:42
【问题描述】:

使用 TcpClient 和 TcpListener 类进行实验,由于某种原因,当我有几个线程正在运行并且我关闭表单时,进程并没有结束,但表单消失了。

我必须使用 VS IDE 或任务管理器手动终止进程。

当我关闭程序但进程没有结束时,表单中的任何内容都没有运行。我在各处插入断点,甚至控制台输出都显示线程已退出。

有人知道这里发生了什么吗?

【问题讨论】:

    标签: c# tcpclient tcplistener


    【解决方案1】:

    您的应用程序的主线程正在等待您生成的线程完成。您可以将线程的IsBackground 属性设置为true,这样它们就不会阻止您的进程终止:

    来自MSDN

    线程要么是后台线程,要么是前台线程。 后台线程与前台线程相同,除了 后台线程不会阻止进程终止。一旦所有 属于一个进程的前台线程已经终止,常见的 语言运行时结束该过程。任何剩余的后台线程 已停止且未完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多