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 设置至源的 0-based 索引结束。

此方法将只使用来自某个数据源的元素(不会超过一种)。

例外

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 设置至源的 0-based 索引结束。

此方法将只使用来自某个数据源的元素(不会超过一种)。 如果在接收元素后请求取消,则该取消请求将被忽略并且相关的处理程序将被允许执行。

例外

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

  • 或 - action1null

  • 或 - 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

适用于