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

Source:
DataflowBlock.cs
Source:
DataflowBlock.cs
Source:
DataflowBlock.cs
Source:
DataflowBlock.cs
Source:
DataflowBlock.cs
Source:
DataflowBlock.cs
Source:
DataflowBlock.cs

监视三个数据流源,调用所提供的处理程序,以便先为哪个源提供数据。

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>

要对来自第三个源的数据执行的处理程序。

返回

表示异步选择的 A Task<TResult> 。 如果在选择完成之前完成所有源,将取消生成的任务。 当其中一个源具有可用数据并成功将其传播到选择时,生成的任务将在处理程序完成时完成;如果处理程序引发异常,任务将结束状态 Faulted ,并且将包含未经处理的异常。 否则,该任务将结束其 Result 设置为源的从 0 开始的索引。

此方法仅使用其中一个数据源中的元素,永远不会使用多个元素。

例外

source1null

-或-

action1null

-或-

source2null

-或-

action2null

-或-

source3null

-或-

action3null

适用于

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

Source:
DataflowBlock.cs
Source:
DataflowBlock.cs
Source:
DataflowBlock.cs
Source:
DataflowBlock.cs
Source:
DataflowBlock.cs
Source:
DataflowBlock.cs
Source:
DataflowBlock.cs

监视三个数据流源,调用所提供的处理程序,以便先为哪个源提供数据。

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

要配置此选项的选项。

返回

表示异步选择的 A Task<TResult> 。 如果在选择完成之前已完成所有源,或者 CancellationToken 如果在选择完成之前已取消作为部分 dataflowBlockOptions 提供的源,则会取消生成的任务。 当其中一个源具有可用数据并成功将其传播到选择时,生成的任务将在处理程序完成时完成;如果处理程序引发异常,任务将结束状态 Faulted ,并且将包含未经处理的异常。 否则,该任务将结束其 Result 设置为源的从 0 开始的索引。

此方法仅使用其中一个数据源中的元素,永远不会使用多个元素。 如果在收到元素后请求取消,将忽略取消请求,并且允许执行相关处理程序。

例外

source1null

-或-

action1null

-或-

source2null

-或-

action2null

-或-

source3null

-或-

action3null

-或-

dataflowBlockOptionsnull

适用于

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

Source:
DataflowBlock.cs
Source:
DataflowBlock.cs
Source:
DataflowBlock.cs
Source:
DataflowBlock.cs
Source:
DataflowBlock.cs
Source:
DataflowBlock.cs
Source:
DataflowBlock.cs

监视两个数据流源,调用所提供的处理程序,以便先为哪个源提供数据。

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>

要对来自第二个源的数据执行的处理程序。

返回

表示异步选择的 A Task<TResult> 。 如果在选择完成之前已完成这两个源,将取消生成的任务。 当其中一个源具有可用数据并成功将其传播到选择时,生成的任务将在处理程序完成时完成;如果处理程序引发异常,任务将结束状态 Faulted ,并且将包含未经处理的异常。 否则,任务将以设置为 Result 0 或 1 结束,分别表示第一个或第二个源。

此方法仅使用两个数据源之一中的一个元素,从不同时使用这两个数据源。

例外

source1null

-或-

action1null

-或-

source2null

-或-

action2null

适用于

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

Source:
DataflowBlock.cs
Source:
DataflowBlock.cs
Source:
DataflowBlock.cs
Source:
DataflowBlock.cs
Source:
DataflowBlock.cs
Source:
DataflowBlock.cs
Source:
DataflowBlock.cs

监视两个数据流源,调用所提供的处理程序,以便先为哪个源提供数据。

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

要配置此选项的选项。

返回

表示异步选择的 A Task<TResult> 。 如果在选择完成之前已完成这两个源,或者如果在 CancellationToken 选择完成之前取消了作为部分 dataflowBlockOptions 提供的源,则会取消生成的任务。 当其中一个源具有可用数据并成功将其传播到选择时,生成的任务将在处理程序完成时完成;如果处理程序引发异常,任务将结束状态 Faulted ,并且将包含未经处理的异常。 否则,任务将以设置为 Result 0 或 1 结束,分别表示第一个或第二个源。

例外

source1null

-或-

action1null

-或-

source2null

-或-

action2null

-或-

dataflowBlockOptionsnull

适用于