如何使您的应用程序多线程?你使用异步功能吗?或者你产生一个新的线程?我认为asynch函数已经产生了一个线程,所以如果你的工作只是做一些文件读取,懒惰而只是在一个线程上产生你的工作就会"浪费"资源......所以在使用线程时有某种设计还是asynch功能?
如果你在谈论.Net,那么不要忘记ThreadPool.线程池也是异步函数经常使用的.产生大量线程实际上可能会损害您的性能.线程池旨在产生足够的线程来以最快的速度完成工作.因此,除非线程池不能满足您的需求,否则请使用线程池而不是自己的线程.
PS:并密切关注Microsoft 的Parallel Extensions
产卵线程只会浪费资源,如果你开始产生大量的线程,一个或两个额外的线程不会影响平台proformance,事实上System目前有超过70个线程供我使用,msn正在使用32个(我真的有不知道一个信使怎么可以使用那么多线程,特别是当它最小化而没有真正做任何事情......)
使用产生线程的好时机是需要花费很长时间的东西,但是你需要继续做其他事情.
例如说计算需要30秒.最好的办法是为计算生成一个新线程,以便您可以继续更新屏幕,并处理任何用户输入,因为如果您的应用程序冻结,直到完成计算,用户将讨厌它.
另一方面,创建线程以执行几乎可以立即完成的操作几乎毫无意义,因为创建(或者甚至只是使用线程池将工作传递到现有线程)的开销将高于仅仅执行第一名.
有时您可以将应用程序分解为几个独立的部分,这些部分在自己的线程中运行.例如,在游戏中,更新/物理等可以是一个线程,而grahpics是另一个,声音/音乐是第三个,而网络是另一个.这里的问题是你真的必须考虑这些部分将如何相互作用,否则你可能会有更糟糕的表现,看似"随机"发生的错误,甚至可能会陷入僵局.