DataflowBlock.Choose Метод

Определение

Перегрузки

Choose<T1,T2,T3>(ISourceBlock<T1>, Action<T1>, ISourceBlock<T2>, Action<T2>, ISourceBlock<T3>, Action<T3>)

Отслеживает три источника потоков данных, вызывая предоставленный обработчик для источника, который первым сделает данные доступными.

Choose<T1,T2,T3>(ISourceBlock<T1>, Action<T1>, ISourceBlock<T2>, Action<T2>, ISourceBlock<T3>, Action<T3>, DataflowBlockOptions)

Отслеживает три источника потоков данных, вызывая предоставленный обработчик для источника, который первым сделает данные доступными.

Choose<T1,T2>(ISourceBlock<T1>, Action<T1>, ISourceBlock<T2>, Action<T2>)

Отслеживает два источника потоков данных, вызывая предоставленный обработчик для источника, который первым сделает данные доступными.

Choose<T1,T2>(ISourceBlock<T1>, Action<T1>, ISourceBlock<T2>, Action<T2>, DataflowBlockOptions)

Отслеживает два источника потоков данных, вызывая предоставленный обработчик для источника, который первым сделает данные доступными.

Choose<T1,T2,T3>(ISourceBlock<T1>, Action<T1>, ISourceBlock<T2>, Action<T2>, ISourceBlock<T3>, Action<T3>)

Отслеживает три источника потоков данных, вызывая предоставленный обработчик для источника, который первым сделает данные доступными.

public:
generic <typename T1, typename T2, typename T3>
 static System::Threading::Tasks::Task<int> ^ Choose(System::Threading::Tasks::Dataflow::ISourceBlock<T1> ^ source1, Action<T1> ^ action1, System::Threading::Tasks::Dataflow::ISourceBlock<T2> ^ source2, Action<T2> ^ action2, System::Threading::Tasks::Dataflow::ISourceBlock<T3> ^ source3, Action<T3> ^ action3);
public static System.Threading.Tasks.Task<int> Choose<T1,T2,T3> (System.Threading.Tasks.Dataflow.ISourceBlock<T1> source1, Action<T1> action1, System.Threading.Tasks.Dataflow.ISourceBlock<T2> source2, Action<T2> action2, System.Threading.Tasks.Dataflow.ISourceBlock<T3> source3, Action<T3> action3);
static member Choose : System.Threading.Tasks.Dataflow.ISourceBlock<'T1> * Action<'T1> * System.Threading.Tasks.Dataflow.ISourceBlock<'T2> * Action<'T2> * System.Threading.Tasks.Dataflow.ISourceBlock<'T3> * Action<'T3> -> System.Threading.Tasks.Task<int>
Public Function Choose(Of T1, T2, T3) (source1 As ISourceBlock(Of T1), action1 As Action(Of T1), source2 As ISourceBlock(Of T2), action2 As Action(Of T2), source3 As ISourceBlock(Of T3), action3 As Action(Of T3)) As Task(Of Integer)

Параметры типа

T1

Указывает тип данных, содержащихся в первом источнике.

T2

Указывает тип данных, содержащихся во втором источнике.

T3

Указывает тип данных, содержащихся в третьем источнике.

Параметры

source1
ISourceBlock<T1>

Первый источник.

action1
Action<T1>

Обработчик, который необходимо выполнить для данных от первого источника.

source2
ISourceBlock<T2>

Второй источник.

action2
Action<T2>

Обработчик, который необходимо выполнить для данных от второго источника.

source3
ISourceBlock<T3>

Третий источник.

action3
Action<T3>

Обработчик, который необходимо выполнить для данных от третьего источника.

Возвращаемое значение

Task<Int32>

Объект Task<TResult>, который представляет асинхронный выбор. Если все источники завершены до завершения выбора, результирующая задача будет отменена. Если один из источников имеет доступные данные и успешно распространяет их выбранному ресурсу, получающаяся в результате задача завершается при завершении работы обработчика; если обработчик вызывает исключение, задача завершается в состоянии Faulted и содержит необработанное исключение. В противном случае при завершении задачи ее свойство Result будет задано равным отсчитываемому от нуля индексу источника.

Этот метод использует только один элемент из одного из источников данных, никогда из нескольких.

Исключения

Значение параметра source1null.

-или- Значение параметра action1null.

-или- Значение параметра source2null.

-или- Значение параметра action2null.

-или- Значение параметра source3null.

-или- Значение параметра action3null.

Применяется к

Choose<T1,T2,T3>(ISourceBlock<T1>, Action<T1>, ISourceBlock<T2>, Action<T2>, ISourceBlock<T3>, Action<T3>, DataflowBlockOptions)

Отслеживает три источника потоков данных, вызывая предоставленный обработчик для источника, который первым сделает данные доступными.

public:
generic <typename T1, typename T2, typename T3>
 static System::Threading::Tasks::Task<int> ^ Choose(System::Threading::Tasks::Dataflow::ISourceBlock<T1> ^ source1, Action<T1> ^ action1, System::Threading::Tasks::Dataflow::ISourceBlock<T2> ^ source2, Action<T2> ^ action2, System::Threading::Tasks::Dataflow::ISourceBlock<T3> ^ source3, Action<T3> ^ action3, System::Threading::Tasks::Dataflow::DataflowBlockOptions ^ dataflowBlockOptions);
public static System.Threading.Tasks.Task<int> Choose<T1,T2,T3> (System.Threading.Tasks.Dataflow.ISourceBlock<T1> source1, Action<T1> action1, System.Threading.Tasks.Dataflow.ISourceBlock<T2> source2, Action<T2> action2, System.Threading.Tasks.Dataflow.ISourceBlock<T3> source3, Action<T3> action3, System.Threading.Tasks.Dataflow.DataflowBlockOptions dataflowBlockOptions);
static member Choose : System.Threading.Tasks.Dataflow.ISourceBlock<'T1> * Action<'T1> * System.Threading.Tasks.Dataflow.ISourceBlock<'T2> * Action<'T2> * System.Threading.Tasks.Dataflow.ISourceBlock<'T3> * Action<'T3> * System.Threading.Tasks.Dataflow.DataflowBlockOptions -> System.Threading.Tasks.Task<int>
Public Function Choose(Of T1, T2, T3) (source1 As ISourceBlock(Of T1), action1 As Action(Of T1), source2 As ISourceBlock(Of T2), action2 As Action(Of T2), source3 As ISourceBlock(Of T3), action3 As Action(Of T3), dataflowBlockOptions As DataflowBlockOptions) As Task(Of Integer)

Параметры типа

T1

Указывает тип данных, содержащихся в первом источнике.

T2

Указывает тип данных, содержащихся во втором источнике.

T3

Указывает тип данных, содержащихся в третьем источнике.

Параметры

source1
ISourceBlock<T1>

Первый источник.

action1
Action<T1>

Обработчик, который необходимо выполнить для данных от первого источника.

source2
ISourceBlock<T2>

Второй источник.

action2
Action<T2>

Обработчик, который необходимо выполнить для данных от второго источника.

source3
ISourceBlock<T3>

Третий источник.

action3
Action<T3>

Обработчик, который необходимо выполнить для данных от третьего источника.

dataflowBlockOptions
DataflowBlockOptions

Параметры, с которыми требуется настроить этот вариант.

Возвращаемое значение

Task<Int32>

Объект Task<TResult>, который представляет асинхронный выбор. Если все источники завершены до завершения выбора или если CancellationToken, предоставленный в составе dataflowBlockOptions, отменяется до завершения выбора, результирующая задача будет отменена. Если один из источников имеет доступные данные и успешно распространяет их выбранному ресурсу, получающаяся в результате задача завершается при завершении работы обработчика; если обработчик вызывает исключение, задача завершается в состоянии Faulted и содержит необработанное исключение. В противном случае при завершении задачи ее свойство Result будет задано равным отсчитываемому от нуля индексу источника.

Этот метод использует только один элемент из одного из источников данных, никогда из нескольких. Если отмена запрашивается после получения элемента, запрос отмены игнорируется, и соответствующему обработчику будет разрешено выполнение.

Исключения

Значение параметра source1null.

-или- Значение параметра action1null.

-или- Значение параметра source2null.

-или- Значение параметра action2null.

-или- Значение параметра source3null.

-или- Значение параметра action3null.

-или- Значение параметра dataflowBlockOptionsnull.

Применяется к

Choose<T1,T2>(ISourceBlock<T1>, Action<T1>, ISourceBlock<T2>, Action<T2>)

Отслеживает два источника потоков данных, вызывая предоставленный обработчик для источника, который первым сделает данные доступными.

public:
generic <typename T1, typename T2>
 static System::Threading::Tasks::Task<int> ^ Choose(System::Threading::Tasks::Dataflow::ISourceBlock<T1> ^ source1, Action<T1> ^ action1, System::Threading::Tasks::Dataflow::ISourceBlock<T2> ^ source2, Action<T2> ^ action2);
public static System.Threading.Tasks.Task<int> Choose<T1,T2> (System.Threading.Tasks.Dataflow.ISourceBlock<T1> source1, Action<T1> action1, System.Threading.Tasks.Dataflow.ISourceBlock<T2> source2, Action<T2> action2);
static member Choose : System.Threading.Tasks.Dataflow.ISourceBlock<'T1> * Action<'T1> * System.Threading.Tasks.Dataflow.ISourceBlock<'T2> * Action<'T2> -> System.Threading.Tasks.Task<int>
Public Function Choose(Of T1, T2) (source1 As ISourceBlock(Of T1), action1 As Action(Of T1), source2 As ISourceBlock(Of T2), action2 As Action(Of T2)) As Task(Of Integer)

Параметры типа

T1

Указывает тип данных, содержащихся в первом источнике.

T2

Указывает тип данных, содержащихся во втором источнике.

Параметры

source1
ISourceBlock<T1>

Первый источник.

action1
Action<T1>

Обработчик, который необходимо выполнить для данных от первого источника.

source2
ISourceBlock<T2>

Второй источник.

action2
Action<T2>

Обработчик, который необходимо выполнить для данных от второго источника.

Возвращаемое значение

Task<Int32>

Объект Task<TResult>, который представляет асинхронный выбор. Если оба источника завершены до завершения выбора, результирующая задача будет отменена. Если один из источников имеет доступные данные и успешно распространяет их выбранному ресурсу, получающаяся в результате задача завершается при завершении работы обработчика; если обработчик вызывает исключение, задача завершается в состоянии Faulted и содержит необработанное исключение. В противном случае при завершении задачи ее свойство Result будет задано равным 0 или 1 для представления первого или второго источника соответственно.

Этот метод использует только один элемент из одного из двух источников данных, никогда из обоих.

Исключения

Значение параметра source1null.

-или- Значение параметра action1 — null.

-или- Значение параметра source2null.

-или- Значение параметра action2null.

Применяется к

Choose<T1,T2>(ISourceBlock<T1>, Action<T1>, ISourceBlock<T2>, Action<T2>, DataflowBlockOptions)

Отслеживает два источника потоков данных, вызывая предоставленный обработчик для источника, который первым сделает данные доступными.

public:
generic <typename T1, typename T2>
 static System::Threading::Tasks::Task<int> ^ Choose(System::Threading::Tasks::Dataflow::ISourceBlock<T1> ^ source1, Action<T1> ^ action1, System::Threading::Tasks::Dataflow::ISourceBlock<T2> ^ source2, Action<T2> ^ action2, System::Threading::Tasks::Dataflow::DataflowBlockOptions ^ dataflowBlockOptions);
public static System.Threading.Tasks.Task<int> Choose<T1,T2> (System.Threading.Tasks.Dataflow.ISourceBlock<T1> source1, Action<T1> action1, System.Threading.Tasks.Dataflow.ISourceBlock<T2> source2, Action<T2> action2, System.Threading.Tasks.Dataflow.DataflowBlockOptions dataflowBlockOptions);
static member Choose : System.Threading.Tasks.Dataflow.ISourceBlock<'T1> * Action<'T1> * System.Threading.Tasks.Dataflow.ISourceBlock<'T2> * Action<'T2> * System.Threading.Tasks.Dataflow.DataflowBlockOptions -> System.Threading.Tasks.Task<int>
Public Function Choose(Of T1, T2) (source1 As ISourceBlock(Of T1), action1 As Action(Of T1), source2 As ISourceBlock(Of T2), action2 As Action(Of T2), dataflowBlockOptions As DataflowBlockOptions) As Task(Of Integer)

Параметры типа

T1

Указывает тип данных, содержащихся в первом источнике.

T2

Указывает тип данных, содержащихся во втором источнике.

Параметры

source1
ISourceBlock<T1>

Первый источник.

action1
Action<T1>

Обработчик, который необходимо выполнить для данных от первого источника.

source2
ISourceBlock<T2>

Второй источник.

action2
Action<T2>

Обработчик, который необходимо выполнить для данных от второго источника.

dataflowBlockOptions
DataflowBlockOptions

Параметры, с которыми требуется настроить этот вариант.

Возвращаемое значение

Task<Int32>

Объект Task<TResult>, который представляет асинхронный выбор. Если оба источника завершены до завершения выбора или если CancellationToken, предоставленный в составе dataflowBlockOptions, отменяется до завершения выбора, результирующая задача будет отменена. Если один из источников имеет доступные данные и успешно распространяет их выбранному ресурсу, получающаяся в результате задача завершается при завершении работы обработчика; если обработчик вызывает исключение, задача завершается в состоянии Faulted и содержит необработанное исключение. В противном случае при завершении задачи ее свойство Result будет задано равным 0 или 1 для представления первого или второго источника соответственно.

Исключения

Значение параметра source1null.

-или- Значение параметра action1null.

-или- Значение параметра source2null.

-или- Значение параметра action2null.

-или- Значение параметра dataflowBlockOptionsnull.

Применяется к