尝试使用TcpClient和TcpListener类,出于某些原因,当我运行几个线程并关闭表单时,进程不会结束,但表单会消失。
我必须使用VS IDE或任务管理器手动终止进程。
当我关闭程序但过程没有结束时,表单中的任何内容仍然没有运行。我在任何地方插入断点,甚至控制台输出都表示线程退出。
任何人都知道这里发生了什么?
答案 0 :(得分:3)
应用程序的主线程正在等待您生成的线程完成。您可以将线程的IsBackground
属性设置为true
,这样它们就不会阻止您的进程终止:
来自MSDN:
线程是后台线程或前台线程。 后台线程与前台线程相同,除此之外 后台线程不会阻止进程终止。一切都好 属于某个进程的前台线程已经终止,这是常见的 语言运行时结束进程。任何剩余的后台线程 停止了,没有完成。