相关疑难解决方法(0)

使用 ConcurrentQueue 时,尝试在并行循环时出队

我在我的 .NET 4 应用程序中使用了并行数据结构,并且ConcurrentQueue在我处理它时添加了一个。

我想做类似的事情:

personqueue.AsParallel().WithDegreeOfParallelism(20).ForAll(i => ... );

当我调用数据库来保存数据时,我限制了并发线程的数量。

但是,我希望ForAll不会出队,我担心只是做

ForAll(i => {
    personqueue.personqueue.TryDequeue(...);
    ...
});
Run Code Online (Sandbox Code Playgroud)

因为不能保证我弹出正确的一个。

那么,我如何以并行方式遍历收集和出队。

或者,使用PLINQ并行进行此处理会更好吗?

concurrency pfx plinq c#-4.0

2
推荐指数
1
解决办法
6551
查看次数

标签 统计

c#-4.0 ×1

concurrency ×1

pfx ×1

plinq ×1