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 起始的來源索引。
這個方法會只使用其中一個資料來源的項目,永遠不會是多個。
例外狀況
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>。 如果在選擇完成前所有來源都已完成,或者如果在選擇完成前隨 dataflowBlockOptions
提供的 CancellationToken 已取消,產生的工作將會被取消。 當其中一個來源有可使用的資料,並成功將它傳播到選擇,則在處理常式完成時,產生的工作會完成,如果處理常式擲回例外狀況,工作會以 Faulted 狀態結束,並包含未處理的例外狀況。 否則,工作會結束,其 Result 設定為以 0 起始的來源索引。
這個方法會只使用其中一個資料來源的項目,永遠不會是多個。 如果在收到項目之後才要求取消時,取消要求會被忽略,而且會允許相關的處理常式執行。
例外狀況
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>。 如果在選擇完成前兩個來源都已完成,或者如果在選擇完成前隨 dataflowBlockOptions
提供的 CancellationToken 已取消,產生的工作將會被取消。 當其中一個來源有可使用的資料,並成功將它傳播到選擇,則在處理常式完成時,產生的工作會完成,如果處理常式擲回例外狀況,工作會以 Faulted 狀態結束,並包含未處理的例外狀況。 否則,工作會結束,其 Result 設定為 0 或 1,分別代表第一個或第二個來源。
例外狀況
source1
為 null
。
-或-
action1
為 null
。
-或-
source2
為 null
。
-或-
action2
為 null
。
-或-
dataflowBlockOptions
為 null
。