gpt4 book ai didi

c# - 如何使用多线程处理 C# 中的列表?

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

我有一张大表,大约有 100 万条记录,而且还在增加......

现在我想将 1K 记录检索到一个列表(列表)并对其进行处理并将结果保存到 3 个表(使用事务),当这些 1k 记录被处理时,我怎么能知道并再次检索....

我使用 Ado.net Entity Framework 作为数据访问模块。

我想使用 MultiThreading ,但我不是很熟悉。
我怎样才能做到这一点。

你能给我一些示例代码或伪代码吗?

最佳答案

如果您使用的是 .NET 4.0,我建议您使用 Task Parallel Library执行任何类型的并行操作。

这是一个如何在您的场景中使用它的示例:

IEnumerable<Entity> entities;
int rangeStartIndex = 0;
int rangeLength = 1000;

do
{
entities = dataContext.Entities
.Skip(rangeStartIndex)
.Take(rangeLength);

Parallel.ForEach(
entities,
item =>
{
// Process a single entity in the list
});

using (var tran = new TransactionScope())
{
// Persist the entities in the database
tran.Complete();
}

rangeStartIndex += rangeLength;

} while (entities.Any());

我们在这里 以并行方式处理实体列表使用 Parallel.ForEach方法,而不必担心管理线程。

相关资源:
  • Parallel Methods
  • TPL and Traditional .NET Asynchronous Programming
  • 关于c# - 如何使用多线程处理 C# 中的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6545266/

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