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

发布于 2024-11-05 11:39:12 字数 199 浏览 0 评论 0原文

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

I've created a method, let's call it MemoryStressTest(). I would like to call this from another method, let's call it InitiateMemoryStressTest(). I would like the InitiateMemoryStressTest() method to call multiple instances of MemoryStressTest() via different threads. The threads don't need to be aware of each other and will not be dependent on each other. I'm using .NET 4. What would be the best way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

天赋异禀 2024-11-12 11:39:12

尽可能简单:

        int threadCount = 100;
        for (int i = 0; i < threadCount; i++)
        {
            (new Thread(() => MemoryStressTest())).Start();
        }

Be as simple, as possible:

        int threadCount = 100;
        for (int i = 0; i < threadCount; i++)
        {
            (new Thread(() => MemoryStressTest())).Start();
        }
因为看清所以看轻 2024-11-12 11:39:12

如果您只是想要新线程 - 并且不想要线程池线程、任务等,那么它非常简单:(

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 的“智能”行为表现为缓慢增加线程池中的线程等。对于正常情况来说一切都很好,但这略有不同:)

If you just want new threads - and don't want thread pool threads, tasks etc, then it's very straightforward:

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
}

(One benefit of this approach over using the thread pool is that you don't get the "smart" behaviour of .NET in terms of ramping up threads in the thread pool slowly etc. All very well for normal situations, but this is slightly different :)

沐歌 2024-11-12 11:39:12

如何使用.NET 4.0并行框架的任务而不是线程
- 让系统决定使用多少个实际线程。

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

How about using .NET 4.0 Parallel Framework's tasks instead of threads
- let the system decide how many actual threads to use.

This can be done with a parallel for, or other techniques.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文