wei*_*mat 5 c# multithreading termination
以干净的方式完成多线程应用程序的最佳方法是什么?
我在单独的套接字中从主线程启动几个套接字连接,并在主线程中等到我的工作日结束,并使用当前System.Environment.Exit(0)终止它.
这导致其中一个孩子处理未处理的异常.我应该停止列表中的线程吗?我一直不愿意在孩子身上实施任何真正的停顿,因此我想知道最佳做法.套接字都很好地包装了适当的析构函数,用于注销和关闭,但它仍然会导致错误.
对于手动创建的线程,您应该将IsBackground属性设置为 true。在这种情况下(如果除主线程之外的所有线程)都将处于后台,您的应用程序在从 Main(string[] arg) 函数返回后会正常关闭。
PS 所有线程池线程都是后台线程。