[英]Threading Question - Best way to spawn multiple threads
我创建了一个方法,我们称之为MemoryStressTest()。 我想从另一个方法中调用它,让我们将其称为InitiateMemoryStressTest()。 我希望InitiateMemoryStressTest()方法通过不同的线程调用MemoryStressTest()的多个实例。 线程不需要彼此了解,也不会相互依赖。 我正在使用.NET4。什么是最好的方法?
尽可能简单:
int threadCount = 100;
for (int i = 0; i < threadCount; i++)
{
(new Thread(() => MemoryStressTest())).Start();
}
如果您只想要新线程,而不想要线程池线程,任务等,那么它非常简单:
for (int i = 0; i < numberOfThreads; i++)
{
Thread t = new Thread(MemoryStressTest);
t.Start();
// Remember t if you need to wait for them all to finish etc
}
(与使用线程池相比,这种方法的一个好处是,在缓慢增加线程池中的线程等方面,您不会得到.NET的“智能”行为。对于正常情况,这一切都很好,但这有点不同:)
如何使用.NET 4.0 Parallel Framework的任务而不是线程-让系统决定要使用多少实际线程。
这可以通过并行或其他技术来完成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.