在多个线程上执行具有不同参数的无序方法的最佳方法
Best way to execute a method unordered with different parameters over many threads
我有一个很大的数字列表(其中 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();
试试这个:
Parallel.ForEach(numbers, number => Check(number));
Parallel.ForEach method 尝试使用多个线程并行 运行 Check
操作。
我有一个很大的数字列表(其中 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();
试试这个:
Parallel.ForEach(numbers, number => Check(number));
Parallel.ForEach method 尝试使用多个线程并行 运行 Check
操作。