我已经创建了一个方法,我们称之为MemoryStressTest()。我想从另一个方法调用它,让我们称之为InitiateMemoryStressTest()。我希望InitiateMemoryStressTest()方法通过不同的线程调用MemoryStressTest()的多个实例。线程不需要彼此了解,也不会相互依赖。我正在使用.NET 4.最好的方法是什么?
答案 0 :(得分:6)
尽可能简单:
int threadCount = 100;
for (int i = 0; i < threadCount; i++)
{
(new Thread(() => MemoryStressTest())).Start();
}
答案 1 :(得分:4)
如果只是想要新线程 - 并且不想要线程池线程,任务等,那么它非常简单:
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的“智能”行为。对于正常情况,一切都很好,但是这略有不同:)
答案 2 :(得分:1)
如何使用.NET 4.0 Parallel Framework的任务而不是线程 - 让系统决定使用多少实际线程。
这可以通过并行或其他技术来完成。