在多个线程上执行具有不同参数的无序方法的最佳方法

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 操作。