Parallel 类

定义

提供对并行循环和区域的支持。

public ref class Parallel abstract sealed
public static class Parallel
type Parallel = class
Public Class Parallel
继承
Parallel

示例

此示例演示使用多种语言构造实现并行循环的几种方法。

using System.Threading.Tasks;   
class Test
{
    static int N = 1000;

    static void TestMethod()
    {
        // Using a named method.
        Parallel.For(0, N, Method2);

        // Using an anonymous method.
        Parallel.For(0, N, delegate(int i)
        {
            // Do Work.
        });

        // Using a lambda expression.
        Parallel.For(0, N, i =>
        {
            // Do Work.
        });
    }

    static void Method2(int i)
    {
        // Do work.
    }
}
Imports System.Threading.Tasks

Module Module1

    Sub Main()
        Dim N As Integer = 1000

        ' Using a named method
        Parallel.For(0, N, AddressOf Method2)

        ' Using a lambda expression.
        Parallel.For(0, N, Sub(i)
                               ' Do Work
                           End Sub)
    End Sub

    Sub Method2(ByVal i As Integer)
        ' Do work.
    End Sub

End Module

注解

Parallel 为常见操作(例如 for 循环、每个循环和一组语句的执行)提供基于库的数据并行替换。

方法

For(Int32, Int32, Action<Int32,ParallelLoopState>)

执行 for 循环,其中可能会并行运行迭代,而且可以监视和操作循环的状态。

For(Int32, Int32, Action<Int32>)

执行 for 循环,其中可能会并行运行迭代。

For(Int32, Int32, ParallelOptions, Action<Int32,ParallelLoopState>)

执行 for 循环,其中可能会并行运行迭代,而且可以配置循环选项,可以监视和操作循环的状态。

For(Int32, Int32, ParallelOptions, Action<Int32>)

执行 for 循环,其中可能会并行运行迭代,而且可以配置循环选项。

For(Int64, Int64, Action<Int64,ParallelLoopState>)

执行具有 64 位索引的 for 循环,其中可能会并行运行迭代,而且可以监视和操作循环的状态。

For(Int64, Int64, Action<Int64>)

执行具有 64 位索引的 for 循环,其中可能会并行运行迭代,而且可以监视和操作循环的状态。

For(Int64, Int64, ParallelOptions, Action<Int64,ParallelLoopState>)

执行具有 64 位索引的 for 循环,其中可能会并行运行迭代,而且可以配置循环选项,可以监视和操作循环的状态。

For(Int64, Int64, ParallelOptions, Action<Int64>)

执行具有 64 位索引的 for 循环,其中可能会并行运行迭代,而且可以配置循环选项。

For<TLocal>(Int32, Int32, Func<TLocal>, Func<Int32,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

执行具有线程本地数据的 for 循环,其中可能会并行运行迭代,而且可以监视和操作循环的状态。

For<TLocal>(Int32, Int32, ParallelOptions, Func<TLocal>, Func<Int32,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

执行具有线程本地数据的 for 循环,其中可能会并行运行迭代,而且可以配置循环选项,可以监视和操作循环的状态。

For<TLocal>(Int64, Int64, Func<TLocal>, Func<Int64,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

执行具有 64 位索引和线程本地数据的 for 循环,其中可能会并行运行迭代,而且可以监视和操作循环的状态。

For<TLocal>(Int64, Int64, ParallelOptions, Func<TLocal>, Func<Int64,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

执行具有 64 位索引和线程本地数据的 for 循环,其中可能会并行运行迭代,而且可以配置循环选项,可以监视和操作循环的状态。

ForAsync<T>(T, T, CancellationToken, Func<T,CancellationToken,ValueTask>)

执行 for 循环,其中迭代可以并行运行。

ForAsync<T>(T, T, Func<T,CancellationToken,ValueTask>)

执行 for 循环,其中迭代可以并行运行。

ForAsync<T>(T, T, ParallelOptions, Func<T,CancellationToken,ValueTask>)

执行 for 循环,其中迭代可以并行运行。

ForEach<TSource,TLocal>(IEnumerable<TSource>, Func<TLocal>, Func<TSource,ParallelLoopState,Int64,TLocal,TLocal>, Action<TLocal>)

执行具有线程本地数据的 foreach(在 Visual Basic 中为 For Each)操作,其中在 IEnumerable 上可能会并行运行迭代,而且可以监视和操作循环的状态。

ForEach<TSource,TLocal>(IEnumerable<TSource>, Func<TLocal>, Func<TSource,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

执行具有线程本地数据的 foreach(在 Visual Basic 中为 For Each)操作,其中在 IEnumerable 上可能会并行运行迭代,而且可以监视和操作循环的状态。

ForEach<TSource,TLocal>(IEnumerable<TSource>, ParallelOptions, Func<TLocal>, Func<TSource,ParallelLoopState,Int64,TLocal,TLocal>, Action<TLocal>)

执行具有线程本地数据和 64 位索引的 foreach(在 Visual Basic 中为 For Each)操作,其中在 IEnumerable 上可能会并行运行迭代,而且可以配置循环选项,可以监视和操作循环的状态。

ForEach<TSource,TLocal>(IEnumerable<TSource>, ParallelOptions, Func<TLocal>, Func<TSource,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

执行具有线程本地数据的 foreach(在 Visual Basic 中为 For Each)操作,其中在 IEnumerable 上可能会并行运行迭代,而且可以配置循环选项,可以监视和操作循环的状态。

ForEach<TSource,TLocal>(OrderablePartitioner<TSource>, Func<TLocal>, Func<TSource,ParallelLoopState,Int64,TLocal,TLocal>, Action<TLocal>)

执行具有线程本地数据的 foreach(在 Visual Basic 中为 For Each)操作,其中在 OrderablePartitioner<TSource> 上可能会并行运行迭代,而且可以配置循环选项,可以监视和操作循环的状态。

ForEach<TSource,TLocal>(OrderablePartitioner<TSource>, ParallelOptions, Func<TLocal>, Func<TSource,ParallelLoopState,Int64,TLocal,TLocal>, Action<TLocal>)

foreach 在 Visual Basic 中执行 (For Each) 操作,该操作具有 64 位索引和线程本地数据OrderablePartitioner<TSource>,其中迭代可以并行运行,可以配置循环选项,并且可以监视和操作循环的状态。

ForEach<TSource,TLocal>(Partitioner<TSource>, Func<TLocal>, Func<TSource,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

执行具有线程本地数据的 foreach(在 Visual Basic 中为 For Each)操作,其中在 Partitioner 上可能会并行运行迭代,而且可以监视和操作循环的状态。

ForEach<TSource,TLocal>(Partitioner<TSource>, ParallelOptions, Func<TLocal>, Func<TSource,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

执行具有线程本地数据的 foreach(在 Visual Basic 中为 For Each)操作,其中在 Partitioner 上可能会并行运行迭代,而且可以配置循环选项,可以监视和操作循环的状态。

ForEach<TSource>(IEnumerable<TSource>, Action<TSource,ParallelLoopState,Int64>)

执行具有 64 位索引的 foreach(在 Visual Basic 中为 For Each)操作,其中在 IEnumerable 上可能会并行运行迭代,而且可以监视和操作循环的状态。

ForEach<TSource>(IEnumerable<TSource>, Action<TSource,ParallelLoopState>)

执行 foreach(在 Visual Basic 中为 For Each)操作,其中在 IEnumerable 中可能会并行运行迭代,而且可以监视和操作循环的状态。

ForEach<TSource>(IEnumerable<TSource>, Action<TSource>)

执行 foreach(在 Visual Basic 中为 For Each)操作,其中在 IEnumerable 上可能会并行运行迭代。

ForEach<TSource>(IEnumerable<TSource>, ParallelOptions, Action<TSource,ParallelLoopState,Int64>)

执行具有 64 位索引的 foreach(在 Visual Basic 中为 For Each)操作,其中在 IEnumerable 上可能会并行运行迭代,而且可以配置循环选项,可以监视和操作循环的状态。

ForEach<TSource>(IEnumerable<TSource>, ParallelOptions, Action<TSource,ParallelLoopState>)

执行 foreach(在 Visual Basic 中为 For Each)操作,其中在 IEnumerable 中可能会并行运行迭代,而且可以配置循环选项,可以监视和操作循环的状态。

ForEach<TSource>(IEnumerable<TSource>, ParallelOptions, Action<TSource>)

执行 foreach(在 Visual Basic 中为 For Each)操作,其中在 IEnumerable 中可能会并行运行迭代,而且可以匹配配置循环选项。

ForEach<TSource>(OrderablePartitioner<TSource>, Action<TSource,ParallelLoopState,Int64>)

执行 foreach(在 Visual Basic 中为 For Each)操作,其中在 OrderablePartitioner<TSource> 中可能会并行运行迭代,而且可以监视和操作循环的状态。

ForEach<TSource>(OrderablePartitioner<TSource>, ParallelOptions, Action<TSource,ParallelLoopState,Int64>)

执行 foreach(在 Visual Basic 中为 For Each)操作,其中在 OrderablePartitioner<TSource> 中可能会并行运行迭代,而且可以配置循环选项,可以监视和操作循环的状态。

ForEach<TSource>(Partitioner<TSource>, Action<TSource,ParallelLoopState>)

执行 foreach(在 Visual Basic 中为 For Each)操作,其中在 Partitioner 中可能会并行运行迭代,而且可以监视和操作循环的状态。

ForEach<TSource>(Partitioner<TSource>, Action<TSource>)

执行 foreach(在 Visual Basic 中为 For Each)操作,其中在 Partitioner 上可能会并行运行迭代。

ForEach<TSource>(Partitioner<TSource>, ParallelOptions, Action<TSource,ParallelLoopState>)

执行 foreach(在 Visual Basic 中为 For Each)操作,其中在 Partitioner 中可能会并行运行迭代,而且可以配置循环选项,可以监视和操作循环的状态。

ForEach<TSource>(Partitioner<TSource>, ParallelOptions, Action<TSource>)

执行 foreach(在 Visual Basic 中为 For Each)操作,其中在 Partitioner 中可能会并行运行迭代,而且可以配置循环选项。

ForEachAsync<TSource>(IAsyncEnumerable<TSource>, CancellationToken, Func<TSource,CancellationToken,ValueTask>)

IEnumerable<T> 执行一个for-each操作,其中迭代可以并行运行。

ForEachAsync<TSource>(IAsyncEnumerable<TSource>, Func<TSource,CancellationToken,ValueTask>)

IEnumerable<T> 执行一个for-each操作,其中迭代可以并行运行。

ForEachAsync<TSource>(IAsyncEnumerable<TSource>, ParallelOptions, Func<TSource,CancellationToken,ValueTask>)

IEnumerable<T> 执行一个for-each操作,其中迭代可以并行运行。

ForEachAsync<TSource>(IEnumerable<TSource>, CancellationToken, Func<TSource,CancellationToken,ValueTask>)

IEnumerable<T> 执行一个for-each操作,其中迭代可以并行运行。

ForEachAsync<TSource>(IEnumerable<TSource>, Func<TSource,CancellationToken,ValueTask>)

IEnumerable<T> 执行一个for-each操作,其中迭代可以并行运行。

ForEachAsync<TSource>(IEnumerable<TSource>, ParallelOptions, Func<TSource,CancellationToken,ValueTask>)

IEnumerable<T> 执行一个for-each操作,其中迭代可以并行运行。

Invoke(Action[])

尽可能并行执行提供的每个操作。

Invoke(ParallelOptions, Action[])

执行所提供的每个操作,而且尽可能并行运行,除非用户取消了操作。

适用于

线程安全性

的所有公共成员和受保护成员 Parallel 都是线程安全的,并且可以从多个线程并发使用。

另请参阅