67得票4回答
ConcurrentBag的正确用法是什么?

我已经阅读了这里关于ConcurrentBag的先前问题,但没有找到一个实际的多线程实现示例。 ConcurrentBag是一种线程安全的袋子实现,优化用于存储和消耗数据的同一线程的情况。 目前以下是我代码中的使用方式(这是简化后的代码):private void MyMethod...

61得票6回答
MaxDegreeOfParallelism 是用来做什么的?

我正在使用 Parallel.ForEach 并进行一些数据库更新操作,如果不设置 MaxDegreeOfParallelism,那么在双核处理器的机器上会导致 SQL 客户端超时,而四核处理器的机器则不会超时。现在我无法控制代码运行的处理器核心类型,但是否有一些可以通过更改 MaxDegre...

59得票4回答
Parallel.ForEach and async-await

我有这样的一个方法:public async Task<MyResult> GetResult() { MyResult result = new MyResult(); foreach(var method in Methods) { s...

51得票1回答
C#中的异步/等待和并行处理

我何时应该在C#中使用async/await,何时应该使用Parallel.ForEach?并行和async/await是否具有相同的用途?它们之间有什么区别?

41得票6回答
Parallel.ForEach比foreach慢

这是代码:using (var context = new AventureWorksDataContext()) { IEnumerable<Customer> _customerQuery = from c in context.Customers ...

38得票3回答
AsParallel()的最大并行度

在使用Parallel.ForEach时,我们可以定义并行选项并设置最大并行度,例如: Parallel.ForEach(values, new ParallelOptions {MaxDegreeOfParallelism = number}, value = > { // ...

37得票5回答
Parallel.Foreach + yield return?

我希望用类似这样的并行循环来处理一些东西: public void FillLogs(IEnumerable<IComputer> computers) { Parallel.ForEach(computers, cpt=> { cpt.Lo...

34得票3回答
垃圾回收和Parallel.ForEach在升级VS2015后出现问题

我有一些代码,用自己类似R的C# DataFrame类来处理数百万数据行。其中有许多Parallel.ForEach调用,以并行迭代数据行。此代码已使用VS2013和.NET 4.5运行了一年多,没有问题。 我有两台开发机器(A和B),最近将A机升级到了VS2015。我开始注意到我的代码会时...

28得票1回答
C# 并行 foreach 循环查找索引。

我想要读取文本文件中的所有行,并打算显示每一行的信息。如何在循环内找到每个项目的索引? 我试图阅读文本文件中的所有行,并计划显示每行信息。在循环内如何找到每个项的索引?string[] lines = File.ReadAllLines("MyFile.txt"); List&lt...

27得票1回答
ThreadPool.QueueUserWorkItem和Parallel.ForEach之间的区别是什么?

以下两种方法的主要区别是什么: ThreadPool.QueueUserWorkItem Clients objClient = new Clients(); List<Clients> objClientList = Clients.GetClientList...