gpt4 book ai didi

c# - Parallel.ForEach/多线程的最佳使用

转载 作者:行者123 更新时间:2023-11-30 13:32:18 24 4
gpt4 key购买 nike

我需要从网站上抓取数据。我有超过 1,000 个链接需要访问,之前我将每个线程的链接划分为 10 个,并且将启动 100 个线程,每个线程拉取 10 个。经过几个测试用例后,100 个线程是最好的计数,以最大限度地减少它检索内容的时间所有链接。

我意识到 .NET 4.0 为开箱即用的多线程提供了更好的支持,但这是根据您拥有的核心数来完成的,在我的例子中,这不会产生足够的线程。我想我要问的是:优化 1,000 链接拉取的最佳方法是什么。我应该使用 .ForEach 并让 Parallel 扩展控制产生的线程数量,还是找到一种方法来告诉它有多少线程开始并分配工作?

我之前没有使用过Parallel,所以我的方法可能是错误的。

最佳答案

你可以使用MaxDegreeOfParallelism Parallel.ForEach 中的属性来控制将产生的线程数。

这是代码片段 -

ParallelOptions opt = new ParallelOptions();
opt.MaxDegreeOfParallelism = 5;

Parallel.ForEach(Directory.GetDirectories(Constants.RootFolder), opt, MyMethod);

关于c# - Parallel.ForEach/多线程的最佳使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14777396/

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