gpt4 book ai didi

c# - 将 Parallel.ForEach 限制为仅 64 个操作

转载 作者:行者123 更新时间:2023-11-30 22:17:00 24 4
gpt4 key购买 nike

我有以下代码将数据插入到 excel 文件中:

 Parallel.ForEach(fileNames.ToArray(), filename =>
{
OleDbConnection cn = new OleDbConnection(connect to filename.xlsx)
cn.open()
... oledb stuff...
cn.close()
});

问题是 OleDbConnection 似乎只允许打开 64 个连接,而在这个 Parallel.ForEach 中有 300 个循环。因此 OledbConnection 会抛出错误,因为打开的连接超过 64 个

是否有变通办法让 TPL 只能执行代码 64 次并将其余代码排队?有点像一批 64

最佳答案

你需要添加

        ParallelOptions parallelOptions = new ParallelOptions();
parallelOptions.MaxDegreeOfParallelism = 64;

并使用“parallelOptions”调用“Parallel.ForEach”

所以你的代码看起来像

Parallel.ForEach(fileNames.ToArray(), parallelOptions , filename =>
.
.

关于c# - 将 Parallel.ForEach 限制为仅 64 个操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17008687/

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