线程问题 - 产生多个线程的最佳方法

时间:2011-05-06 13:52:40

标签: c# multithreading

我已经创建了一个方法,我们称之为MemoryStressTest()。我想从另一个方法调用它,让我们称之为InitiateMemoryStressTest()。我希望InitiateMemoryStressTest()方法通过不同的线程调用MemoryStressTest()的多个实例。线程不需要彼此了解,也不会相互依赖。我正在使用.NET 4.最好的方法是什么?

3 个答案:

答案 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的任务而不是线程 - 让系统决定使用多少实际线程。

这可以通过并行或其他技术来完成。