gpt4 book ai didi

c# - 多线程-产生多个线程并等待

转载 作者:行者123 更新时间:2023-12-03 13:21:16 25 4
gpt4 key购买 nike

我需要有关多线程的一些建议。

示例:我想生成200个线程,每个线程应从一个网站获取一个不同的图像(该网站有点慢)。但是应该有最大。一次有40个线程。

任何的想法?

我期待一些答案。

最佳答案

您可以轻松地为此使用ThreadPool。池在管理线程方面做得很好,但是如果您确实必须限制最大数量,则可以使用:

ThreadPool.SetMaxThreads(40, 40);

// submit 200 tasks to the pool
for(int i = 0; i < 200; i++)
{
ThreadPool.QueueUserWorkItem(
() =>
{
// code for each task
});
}

不幸的是,没有内置的方法等待任务完成,因此您只需要即兴创作即可。如果可以访问.NET 4.0,则可以 checkout Parallel.For:
ParallelOptions po = new ParallelOptions();
po.MaxDegreeOfParallelism = 40;
Parallel.For(0, 200, po,
i =>
{
// code for each task
});

关于c# - 多线程-产生多个线程并等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11451575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com