Поделиться через


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

Выполняет операцию foreach (For Each в Visual Basic) с локальными данными потока для объекта IEnumerable, обеспечивая возможность параллельного выполнения итераций, а также контроля состояния цикла и управления этим состоянием.

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

Выполняет операцию foreach (For Each в Visual Basic) с 64-разрядными индексами и локальными данными потока для объекта IEnumerable, обеспечивая возможность параллельного выполнения итераций, настройки параметров цикла, а также контроля состояния цикла и управления этим состоянием.

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

Выполняет операцию foreach (For Each в Visual Basic) с локальными данными потока для объекта IEnumerable, обеспечивая возможность параллельного выполнения итераций, настройки параметров цикла, а также контроля состояния цикла и управления этим состоянием.

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 Выполняет операцию (For Each в Visual Basic) с 64-разрядными индексами и локальными данными 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>)

Выполняет операцию foreach (For Each в Visual Basic) с 64-разрядными индексами для объекта IEnumerable, обеспечивая возможность параллельного выполнения итераций, а также контроля состояния цикла и управления этим состоянием.

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

Выполняет операцию foreach (For Each в Visual Basic) для объекта IEnumerable, обеспечивая возможность параллельного выполнения итераций, а также контроля состояния цикла и управления этим состоянием.

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

Выполняет операцию foreach (For Each в Visual Basic) для объекта IEnumerable, обеспечивая возможность параллельного выполнения итераций.

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

Выполняет операцию foreach (For Each в Visual Basic) с 64-разрядными индексами для объекта IEnumerable, обеспечивая возможность параллельного выполнения итераций, настройки параметров цикла, а также контроля состояния цикла и управления этим состоянием.

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

Выполняет операцию foreach (For Each в Visual Basic) для объекта IEnumerable, обеспечивая возможность параллельного выполнения итераций, настройки параметров цикла, а также контроля состояния цикла и управления этим состоянием.

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

Выполняет операцию foreach (For Each в Visual Basic) для объекта IEnumerable, обеспечивая возможность параллельного выполнения итераций и настройки параметров цикла.

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

Выполняет операцию foreach (For Each в Visual Basic) для объекта Partitioner, обеспечивая возможность параллельного выполнения итераций, а также контроля состояния цикла и управления этим состоянием.

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

Выполняет операцию foreach (For Each в Visual Basic) для объекта Partitioner, обеспечивая возможность параллельного выполнения итераций и настройки параметров цикла.

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 являются потокобезопасными и могут использоваться одновременно из нескольких потоков.

См. также раздел