DataflowBlock.Choose Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
Choose<T1,T2,T3>(ISourceBlock<T1>, Action<T1>, ISourceBlock<T2>, Action<T2>, ISourceBlock<T3>, Action<T3>) |
Monitora as três fontes de fluxo de dados, invocando o manipulador fornecido para a fonte que disponibilizar os dados primeiro. |
Choose<T1,T2,T3>(ISourceBlock<T1>, Action<T1>, ISourceBlock<T2>, Action<T2>, ISourceBlock<T3>, Action<T3>, DataflowBlockOptions) |
Monitora as três fontes de fluxo de dados, invocando o manipulador fornecido para a fonte que disponibilizar os dados primeiro. |
Choose<T1,T2>(ISourceBlock<T1>, Action<T1>, ISourceBlock<T2>, Action<T2>) |
Monitora duas fontes de fluxo de dados, invocando o manipulador fornecido para a fonte que disponibilizar os dados primeiro. |
Choose<T1,T2>(ISourceBlock<T1>, Action<T1>, ISourceBlock<T2>, Action<T2>, DataflowBlockOptions) |
Monitora duas fontes de fluxo de dados, invocando o manipulador fornecido para a fonte que disponibilizar os dados primeiro. |
Choose<T1,T2,T3>(ISourceBlock<T1>, Action<T1>, ISourceBlock<T2>, Action<T2>, ISourceBlock<T3>, Action<T3>)
Monitora as três fontes de fluxo de dados, invocando o manipulador fornecido para a fonte que disponibilizar os dados primeiro.
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)
Parâmetros de tipo
- T1
Especifica o tipo de dados contidos na primeira fonte.
- T2
Especifica o tipo de dados contidos na segunda fonte.
- T3
Especifica o tipo de dados contidos na terceira fonte.
Parâmetros
- source1
- ISourceBlock<T1>
A primeira origem.
- action1
- Action<T1>
O manipulador a ser executado nos dados da primeira origem.
- source2
- ISourceBlock<T2>
A segunda origem.
- action2
- Action<T2>
O manipulador a ser executado nos dados da segunda origem.
- source3
- ISourceBlock<T3>
A terceira origem.
- action3
- Action<T3>
O manipulador a ser executado nos dados da terceira origem.
Retornos
Um Task<TResult> que representa a escolha assíncrona. Se todas as fontes forem concluídas antes de concluir a opção, a tarefa resultante será cancelada. Quando uma das fontes tem dados disponíveis e os propaga com êxito para a escolha, a tarefa resultante será concluída quando o manipulador for concluído; se o manipulador gerar uma exceção, a tarefa terminará no estado Faulted e conterá a exceção sem tratamento. Caso contrário, a tarefa terminará com a seu Result definido para o índice de base 0 da origem.
Esse método só consumirá um elemento de uma das fontes de dados, nunca mais de uma.
Exceções
O source1
é null
.
- ou -
O action1
é null
.
- ou -
O source2
é null
.
- ou -
O action2
é null
.
- ou -
O source3
é null
.
- ou -
O action3
é null
.
Aplica-se a
Choose<T1,T2,T3>(ISourceBlock<T1>, Action<T1>, ISourceBlock<T2>, Action<T2>, ISourceBlock<T3>, Action<T3>, DataflowBlockOptions)
Monitora as três fontes de fluxo de dados, invocando o manipulador fornecido para a fonte que disponibilizar os dados primeiro.
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)
Parâmetros de tipo
- T1
Especifica o tipo de dados contidos na primeira fonte.
- T2
Especifica o tipo de dados contidos na segunda fonte.
- T3
Especifica o tipo de dados contidos na terceira fonte.
Parâmetros
- source1
- ISourceBlock<T1>
A primeira origem.
- action1
- Action<T1>
O manipulador a ser executado nos dados da primeira origem.
- source2
- ISourceBlock<T2>
A segunda origem.
- action2
- Action<T2>
O manipulador a ser executado nos dados da segunda origem.
- source3
- ISourceBlock<T3>
A terceira origem.
- action3
- Action<T3>
O manipulador a ser executado nos dados da terceira origem.
- dataflowBlockOptions
- DataflowBlockOptions
As opções com as quais esta escolha será configurada.
Retornos
Um Task<TResult> que representa a escolha assíncrona. Se todas as fontes forem concluídas antes de concluir a opção ou, se o CancellationToken fornecido como parte do dataflowBlockOptions
foi cancelado antes de concluir a opção, a tarefa resultante será cancelada. Quando uma das fontes tem dados disponíveis e os propaga com êxito para a escolha, a tarefa resultante será concluída quando o manipulador for concluído; se o manipulador gerar uma exceção, a tarefa terminará no estado Faulted e conterá a exceção sem tratamento. Caso contrário, a tarefa terminará com a seu Result definido para o índice de base 0 da origem.
Esse método só consumirá um elemento de uma das fontes de dados, nunca mais de uma. Se o cancelamento for solicitado após um elemento ser recebido, a solicitação de cancelamento será ignorada e o manipulador relevante terá permissão para executar.
Exceções
O source1
é null
.
- ou -
O action1
é null
.
- ou -
O source2
é null
.
- ou -
O action2
é null
.
- ou -
O source3
é null
.
- ou -
O action3
é null
.
- ou -
O dataflowBlockOptions
é null
.
Aplica-se a
Choose<T1,T2>(ISourceBlock<T1>, Action<T1>, ISourceBlock<T2>, Action<T2>)
Monitora duas fontes de fluxo de dados, invocando o manipulador fornecido para a fonte que disponibilizar os dados primeiro.
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)
Parâmetros de tipo
- T1
Especifica o tipo de dados contidos na primeira fonte.
- T2
Especifica o tipo de dados contidos na segunda fonte.
Parâmetros
- source1
- ISourceBlock<T1>
A primeira origem.
- action1
- Action<T1>
O manipulador a ser executado nos dados da primeira origem.
- source2
- ISourceBlock<T2>
A segunda origem.
- action2
- Action<T2>
O manipulador a ser executado nos dados da segunda origem.
Retornos
Um Task<TResult> que representa a escolha assíncrona. Se ambas as fontes forem concluídas antes de concluir a opção, a tarefa resultante será cancelada. Quando uma das fontes tem dados disponíveis e os propaga com êxito para a escolha, a tarefa resultante será concluída quando o manipulador for concluído; se o manipulador gerar uma exceção, a tarefa terminará no estado Faulted e conterá a exceção sem tratamento. Caso contrário, a tarefa será finalizada com seu Result definido como 0 ou 1 para representar a primeira ou segunda fonte, respectivamente.
Esse método só consumirá um elemento de uma das duas fontes de dados, nunca de ambas.
Exceções
O source1
é null
.
- ou -
O action1
é null
.
- ou -
O source2
é null
.
- ou -
O action2
é null
.
Aplica-se a
Choose<T1,T2>(ISourceBlock<T1>, Action<T1>, ISourceBlock<T2>, Action<T2>, DataflowBlockOptions)
Monitora duas fontes de fluxo de dados, invocando o manipulador fornecido para a fonte que disponibilizar os dados primeiro.
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)
Parâmetros de tipo
- T1
Especifica o tipo de dados contidos na primeira fonte.
- T2
Especifica o tipo de dados contidos na segunda fonte.
Parâmetros
- source1
- ISourceBlock<T1>
A primeira origem.
- action1
- Action<T1>
O manipulador a ser executado nos dados da primeira origem.
- source2
- ISourceBlock<T2>
A segunda origem.
- action2
- Action<T2>
O manipulador a ser executado nos dados da segunda origem.
- dataflowBlockOptions
- DataflowBlockOptions
As opções com as quais esta escolha será configurada.
Retornos
Um Task<TResult> que representa a escolha assíncrona. Se ambas as fontes forem concluídas antes de concluir a opção ou, se o CancellationToken fornecido como parte do dataflowBlockOptions
foi cancelado antes de concluir a opção, a tarefa resultante será cancelada. Quando uma das fontes tem dados disponíveis e os propaga com êxito para a escolha, a tarefa resultante será concluída quando o manipulador for concluído; se o manipulador gerar uma exceção, a tarefa terminará no estado Faulted e conterá a exceção sem tratamento. Caso contrário, a tarefa será finalizada com seu Result definido como 0 ou 1 para representar a primeira ou segunda fonte, respectivamente.
Exceções
O source1
é null
.
- ou -
O action1
é null
.
- ou -
O source2
é null
.
- ou -
O action2
é null
.
- ou -
O dataflowBlockOptions
é null
.