关闭表单时申请流程没有结束? (C#)

时间:2011-09-17 23:17:04

标签: c# tcpclient tcplistener

尝试使用TcpClient和TcpListener类,出于某些原因,当我运行几个线程并关闭表单时,进程不会结束,但表单会消失。

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

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

任何人都知道这里发生了什么?

1 个答案:

答案 0 :(得分:3)

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

来自MSDN

  

线程是后台线程或前台线程。   后台线程与前台线程相同,除此之外   后台线程不会阻止进程终止。一切都好   属于某个进程的前台线程已经终止,这是常见的   语言运行时结束进程。任何剩余的后台线程   停止了,没有完成。