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<TResult>, который представляет асинхронный выбор. Если все источники завершены до завершения выбора, результирующая задача будет отменена. Если один из источников имеет доступные данные и успешно распространяет их выбранному ресурсу, получающаяся в результате задача завершается при завершении работы обработчика; если обработчик вызывает исключение, задача завершается в состоянии Faulted и содержит необработанное исключение. В противном случае при завершении задачи ее свойство Result будет задано равным отсчитываемому от нуля индексу источника.
Этот метод использует только один элемент из одного из источников данных, никогда из нескольких.
Исключения
Значение параметра source1
— null
.
-или-
Значение параметра action1
— null
.
-или-
Значение параметра source2
— null
.
-или-
Значение параметра action2
— null
.
-или-
Значение параметра source3
— null
.
-или-
Значение параметра action3
— null
.
Применяется к
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<TResult>, который представляет асинхронный выбор. Если все источники завершены до завершения выбора или если CancellationToken, предоставленный в составе dataflowBlockOptions
, отменяется до завершения выбора, результирующая задача будет отменена. Если один из источников имеет доступные данные и успешно распространяет их выбранному ресурсу, получающаяся в результате задача завершается при завершении работы обработчика; если обработчик вызывает исключение, задача завершается в состоянии Faulted и содержит необработанное исключение. В противном случае при завершении задачи ее свойство Result будет задано равным отсчитываемому от нуля индексу источника.
Этот метод использует только один элемент из одного из источников данных, никогда из нескольких. Если отмена запрашивается после получения элемента, запрос отмены игнорируется, и соответствующему обработчику будет разрешено выполнение.
Исключения
Значение параметра source1
— null
.
-или-
Значение параметра action1
— null
.
-или-
Значение параметра source2
— null
.
-или-
Значение параметра action2
— null
.
-или-
Значение параметра source3
— null
.
-или-
Значение параметра action3
— null
.
-или-
Значение параметра dataflowBlockOptions
— null
.
Применяется к
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<TResult>, который представляет асинхронный выбор. Если оба источника завершены до завершения выбора, результирующая задача будет отменена. Если один из источников имеет доступные данные и успешно распространяет их выбранному ресурсу, получающаяся в результате задача завершается при завершении работы обработчика; если обработчик вызывает исключение, задача завершается в состоянии Faulted и содержит необработанное исключение. В противном случае при завершении задачи ее свойство Result будет задано равным 0 или 1 для представления первого или второго источника соответственно.
Этот метод использует только один элемент из одного из двух источников данных, никогда из обоих.
Исключения
Значение параметра source1
— null
.
-или-
Значение параметра action1
— null
.
-или-
Значение параметра source2
— null
.
-или-
Значение параметра action2
— null
.
Применяется к
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<TResult>, который представляет асинхронный выбор. Если оба источника завершены до завершения выбора или если CancellationToken, предоставленный в составе dataflowBlockOptions
, отменяется до завершения выбора, результирующая задача будет отменена. Если один из источников имеет доступные данные и успешно распространяет их выбранному ресурсу, получающаяся в результате задача завершается при завершении работы обработчика; если обработчик вызывает исключение, задача завершается в состоянии Faulted и содержит необработанное исключение. В противном случае при завершении задачи ее свойство Result будет задано равным 0 или 1 для представления первого или второго источника соответственно.
Исключения
Значение параметра source1
— null
.
-или-
Значение параметра action1
— null
.
-или-
Значение параметра source2
— null
.
-или-
Значение параметра action2
— null
.
-или-
Значение параметра dataflowBlockOptions
— null
.