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

使用執行緒區域資料在 IEnumerable 上執行 foreach (在 Visual Basic 中為 For Each) 運算,其中可以平行執行反覆項目,還可以監控和操作迴圈的狀態。

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

使用執行緒區域資料在 foreach 上執行 For Each (在 Visual Basic 中為 IEnumerable) 運算,其中可以平行執行反覆項目,還可以監控和操作迴圈的狀態。

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

使用執行緒區域資料和 64 位元索引在 IEnumerable 上執行 foreach (在 Visual Basic 中為 For Each) 運算,其中可以平行執行反覆項目、可以設定迴圈選項,還可以監控和操作迴圈的狀態。

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

使用執行緒區域資料,在 IEnumerable 上執行 foreach (Visual Basic 中的 For Each) 作業,其中可以平行執行反覆運算、可設定迴圈選項,且可以監視和操作迴圈狀態。

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

使用執行緒區域資料在 foreach 上執行 For Each (在 Visual Basic 中為 OrderablePartitioner<TSource>) 運算,其中可以平行執行反覆項目、可以設定迴圈選項,還可以監控和操作迴圈的狀態。

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

foreach在 Visual Basic) 作業中執行具有 64 位索引的 (For Each ,並在 上 OrderablePartitioner<TSource> 執行執行緒本機資料,其中可以平行執行反復專案、可以設定迴圈選項,以及可以監視及操作迴圈的狀態。

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

使用執行緒區域資料在 foreach 上執行 For Each (在 Visual Basic 中為 Partitioner) 運算,其中可以平行執行反覆項目,還可以監控和操作迴圈的狀態。

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

使用執行緒區域資料在 foreach 上執行 For Each (在 Visual Basic 中為 Partitioner) 運算,其中可以平行執行反覆項目、可以設定迴圈選項,還可以監控和操作迴圈的狀態。

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

使用 64 位元索引在 IEnumerable 上執行 foreach (在 Visual Basic 中為 For Each) 運算,其中可以平行執行反覆項目,還可以監控和操作迴圈的狀態。

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

IEnumerable 上執行 foreach (在 Visual Basic 中為 For Each) 運算,其中可以平行執行反覆項目,還可以監控和操作迴圈的狀態。

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

foreach 上執行 For Each (在 Visual Basic 中為 IEnumerable) 運算,其中可以平行執行反覆項目。

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

使用 64 位元索引在 foreach 上執行 For Each (在 Visual Basic 中為 IEnumerable) 運算,其中可以平行執行反覆項目、可以設定迴圈選項,還可以監控和操作迴圈的狀態。

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

IEnumerable 上執行 foreach (在 Visual Basic 中為 For Each) 運算,其中可以平行執行反覆項目、可以設定迴圈選項,還可以監控和操作迴圈的狀態。

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

IEnumerable 上執行 foreach (在 Visual Basic 中為 For Each) 運算,其中可以平行執行反覆項目,還可以設定迴圈選項。

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

foreach 上執行 For Each (在 Visual Basic 中為 OrderablePartitioner<TSource>) 運算,其中可以平行執行反覆項目,還可以監控和操作迴圈的狀態。

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

foreach 上執行 For Each (在 Visual Basic 中為 OrderablePartitioner<TSource>) 運算,其中可以平行執行反覆項目、可以設定迴圈選項,還可以監控和操作迴圈的狀態。

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

Partitioner 上執行 foreach (在 Visual Basic 中為 For Each) 運算,其中可以平行執行反覆項目,還可以監控和操作迴圈的狀態。

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

foreach 上執行 For Each (在 Visual Basic 中為 Partitioner) 運算,其中可以平行執行反覆項目。

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

foreach 上執行 For Each (在 Visual Basic 中為 Partitioner) 運算,其中可以平行執行反覆項目、可以設定迴圈選項,還可以監控和操作迴圈的狀態。

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

Partitioner 上執行 foreach (在 Visual Basic 中為 For Each) 運算,其中可以平行執行反覆項目,還可以設定迴圈選項。

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 都是安全線程,而且可以從多個執行緒同時使用。

另請參閱