8得票1回答
Python中的C# Parallel.Foreach等效方法

我有96个txt文件需要处理。目前我正在使用for循环一个接一个地进行处理,这个过程非常缓慢。最终的96个文件不需要合并。是否有一种方法可以并行运行它们,类似于C#中的Parallel.foreach? 当前代码: for src_name in glob.glob(source_dir+'...

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

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

25得票4回答
Parallel.Invoke和Parallel.ForEach本质上是相同的吗?

我所说的“同一件事”是指这两个操作基本上做了相同的工作,只是根据你要处理的内容来决定哪一个更方便调用(例如代表列表或迭代对象列表)? 我已经在 MSDN、StackOverflow 和各种随机文章中搜索过,但还没有找到明确的答案。 编辑:我应该更清楚一些;我想知道这两种方法是否做了相同的事情,...

8得票5回答
在parallel.ForEach循环中获取线程ID

在Parallel.ForEach循环中是否有一种方法可以找到线程ID。我尝试使用var threadId = Thread.CurrentThread.ManagedThreadId - 1;,但它没有给我想要的正确索引。 这里是一个简单的示例: private void TestPro...

9得票1回答
如何在并行foreach中使用await?

我花了大部分晚上尝试解决这个问题。 昨天我很幸运地接触到了Parallel.ForEach,它的工作方式与我的期望相符,除了一个细节。 我有以下代码: Parallel.ForEach(data, (d) => { try { MyMethod(d,...

7得票3回答
如何更好地使用任务并行库(Task Parallel Library)?

我刚开始使用TPL,并希望能够同时发出多个web服务调用。据我所知,有两种方法可以实现这一点。 第一种是使用Parallel.ForEach: List<ServiceMemberBase> list = new List<ServiceMemberBase>();...

8得票4回答
在.NET Parallel.ForEach()代码中执行一些异步/等待操作是否可行?

以下是给定的代码,是否可以在 Parallel.ForEach 中使用 async/await? 例如: Parallel.ForEach(names, name => { // Do some stuff... var foo = await GetStuffFr...

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

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

25得票13回答
如何在TPL中为任务分配名称

我将在我的应用程序上运行许多任务,每组任务都有自己的运行原因。我希望给这些任务命名,这样当我查看并行任务窗口时,就能轻松识别它们。换个角度考虑,假设我正在使用框架级别的任务来填充列表。那么使用我的框架的开发人员也会使用任务。如果她查看并行任务窗口,可能会发现一些不知道是什么的任务。我想给任务命...

14得票2回答
我可以在ConcurrentBag<Τ>上使用普通的foreach循环吗?

在我的代码的一个并行部分中,我将每个线程的结果保存到一个ConcurrentBag&lt;Τ&gt;中。然而,当这个过程完成后,我需要遍历这些结果,并将它们通过我的评估算法运行。普通的foreach循环是否能够遍历所有成员,还是需要特殊的代码?我也考虑过使用队列而不是背包,但我不知道哪个更好。...