DataflowBlock.Choose 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
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 设置至源的 0-based 索引结束。
此方法将只使用来自某个数据源的元素(不会超过一种)。
例外
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 设置至源的 0-based 索引结束。
此方法将只使用来自某个数据源的元素(不会超过一种)。 如果在接收元素后请求取消,则该取消请求将被忽略并且相关的处理程序将被允许执行。
例外
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 来分别表示第一或第二源结束。
此方法将只使用来自两个数据源中的一个元素(不会同时使用两个)。
例外
适用于
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
。