主执行路径(主线程)将分为两个执行路径(不同作业上的两个新线程),但不再需要主线程。我可以将其中一个任务分配给主线程并保存一个线程(一个任务由主线程,另一个由一个新线程)但我想知道将主线程置于无限睡眠Thread.Sleep(Timeout.Infinite)
是一个好方法。我的类将被多次实例化,如果一个无限睡眠的线程从操作系统中获取资源,那对我来说是个坏消息。
答案 0 :(得分:1)
您创建的每个线程占用堆栈空间。在Windows上,默认为1MB。还有其他内部管家数据结构,操作系统用它来跟踪线程,这也将占用一些内存,但1MB堆栈肯定会成为最大的资源消费者。
话虽如此,如果我们只讨论2对3线程,那么差异就很小了。如果它是200而不是300那么你可能有些担心。但是如果你正在产生很多线程,你最好使用某种线程池(比如说,the one built-in to the .NET framework),而不是产生单独的线程。
答案 1 :(得分:0)
所有线程都会占用资源,无论他们是否正在睡觉。