繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM