c# - 在多个线程上执行具有不同参数的无序方法的最佳方法
问题描述
我有一个很大的数字列表(其中 4,718,515 个),我需要对每个数字运行一个方法。我有一个方法Check(number)
需要与numbers
.
我不知道在 c# 中解决这个问题的最有效方法
如果有帮助,这里有一些例子,说明我如何用其他语言做到这一点
Python:
pool.imap_unordered
在 Java 中:
forkJoinPool = new ForkJoinPool(processes);
forkJoinPool.submit(() -> words.stream()
.unordered()
.parallel()
.filter(CheckValidity::checkValidity)
解决方案
在 C# 中有PLINQ库
var desiredResult = numbers
.AsParallel()
.AsUnordered()
.Where(number => Check(number))
.ToArray();
推荐阅读
- vba - 如果工作簿已打开,则继续
- laravel - 如何在锚标记数据值中设置图像 url
- ios - iOS中的压缩PNG文件错误组
- c# - Entity Framework Core 过滤相关实体并获得每个组的前 2 个
- javascript - 为什么我的表单在移动设备上不起作用?
- sql - 合并两个查询
- java - 使 spring @Value 从静态字段中获取默认值
- objective-c - AppCode 注释后缩进
- angular - Angular 6:MIME 类型('text/html')不可执行,并且启用了严格的 MIME 类型检查
- r - 将 CSS 加载到闪亮的服务器时延迟