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>)

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

For(Int64, Int64, Action<Int64>)

执行包含 for 64 位索引的循环,其中迭代可以并行运行。

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

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

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

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

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>)

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

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

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

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>)

在 Visual Basic 中使用线程本地 <数据执行 /> ( >) 操作,其中迭代可以并行运行,并且可以监视和操作循环的状态。

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

在 Visual Basic 中使用线程本地 <数据执行 /> ( >)操作,其中迭代可以并行运行,并且可以监视和操作循环的状态。

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

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

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

使用 foreach 上的线程本地数据执行 For EachIEnumerable Visual Basic)操作,在其中可以配置循环选项,并且可以监视和操作循环的状态。

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

使用 foreach 上的线程本地数据执行 For Each /> (OrderablePartitioner<TSource> Visual Basic),在其中可以配置循环选项,并且可以监视和操作循环的状态。

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

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

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

使用 上的线程本地数据执行 /> ()操作,在该操作中可以并行运行迭代,并且可以监视和操作循环的状态。

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

使用 foreach 上的线程本地数据执行 For Each /> (Partitioner Visual Basic),在其中可以配置循环选项,并且可以监视和操作循环的状态。

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

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

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

对 Visual BasicforeachFor Each)操作执行IEnumerable/>,可以监视和操作循环的状态。

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

在 Visual Basic foreach 上对foreach执行IEnumerable (),其中迭代可以并行运行。

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

在 Visual Basic 中执行具有 64 位 <索引的 /> ( >)操作,在该操作中可以并行运行迭代,可以配置循环选项,并且可以监视和操作循环的状态。

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

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

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

在 Visual Basic foreach 上执行 For Each /> (IEnumerable)操作,在其中可以配置并行运行的迭代和循环选项。

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

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

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

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

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

在 Visual Basicforeach上执行For Each /> (Partitioner)操作,在其中可以并行运行迭代,并且可以监视和操作循环的状态。

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

在 Visual Basic foreach 上对foreach执行Partitioner (),其中迭代可以并行运行。

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

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

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

foreach 上对foreach执行Partitioner (Visual Basic ),可以配置循环选项。

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

for-each对可以并行运行的迭代执行操作IEnumerable<T>

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

for-each对可以并行运行的迭代执行操作IEnumerable<T>

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

for-each对可以并行运行的迭代执行操作IEnumerable<T>

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

for-each对可以并行运行的迭代执行操作IEnumerable<T>

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

for-each对可以并行运行的迭代执行操作IEnumerable<T>

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

for-each对可以并行运行的迭代执行操作IEnumerable<T>

Invoke(Action[])

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

Invoke(ParallelOptions, Action[])

除非用户取消了该操作,否则执行每个提供的操作(可能并行执行)。

适用于

线程安全性

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

另请参阅