JoinBlock<T1,T2,T3> 類別

定義

提供資料流程區塊,其跨多個資料流程來源 (不一定是相同的類型) 進行聯結,並等待每一種類型的一個項目抵達後,才會將它們當作 Tuple (包含每一種類型的一個項目),全部一起釋放。

generic <typename T1, typename T2, typename T3>
public ref class JoinBlock sealed : System::Threading::Tasks::Dataflow::IReceivableSourceBlock<Tuple<T1, T2, T3> ^>, System::Threading::Tasks::Dataflow::ISourceBlock<Tuple<T1, T2, T3> ^>
public sealed class JoinBlock<T1,T2,T3> : System.Threading.Tasks.Dataflow.IReceivableSourceBlock<Tuple<T1,T2,T3>>, System.Threading.Tasks.Dataflow.ISourceBlock<Tuple<T1,T2,T3>>
type JoinBlock<'T1, 'T2, 'T3> = class
    interface IReceivableSourceBlock<'T1 * 'T2 * 'T3>
    interface ISourceBlock<'T1 * 'T2 * 'T3>
    interface IDataflowBlock
type JoinBlock<'T1, 'T2, 'T3> = class
    interface IDataflowBlock
    interface IReceivableSourceBlock<'T1 * 'T2 * 'T3>
    interface ISourceBlock<'T1 * 'T2 * 'T3>
Public NotInheritable Class JoinBlock(Of T1, T2, T3)
Implements IReceivableSourceBlock(Of Tuple(Of T1, T2, T3)), ISourceBlock(Of Tuple(Of T1, T2, T3))

類型參數

T1

指定區塊的第一個目標所接受的資料型別。

T2

指定區塊的第二個目標所接受的資料型別。

T3

指定區塊的第三個目標所接受的資料型別。

繼承
JoinBlock<T1,T2,T3>
實作

備註

注意

TPL 資料流程程式庫 (System.Threading.Tasks.Dataflow 命名空間) 並未隨 .NET 散發。 若要在 Visual Studio 中安裝 System.Threading.Tasks.Dataflow 命名空間,請開啟您的專案,從 [專案] 功能表中選擇 [管理 NuGet 套件],並於線上搜尋 System.Threading.Tasks.Dataflow 套件。 除此之外也可使用 .Net Core CLI (執行 dotnet add package System.Threading.Tasks.Dataflow) 加以安裝。

建構函式

JoinBlock<T1,T2,T3>()

初始化新的 JoinBlock<T1,T2,T3>

JoinBlock<T1,T2,T3>(GroupingDataflowBlockOptions)

初始化新的 JoinBlock<T1,T2,T3>

屬性

Completion

取得 Task,其表示非同步作業和資料流程區塊的完成。

OutputCount

取得可從此區塊接收的輸出項目數目。

Target1

取得可用來提供第一個類型之訊息的目標。

Target2

取得可用來提供第二個類型之訊息的目標。

Target3

取得可用來提供第三個類型之訊息的目標。

方法

Complete()

IDataflowBlock 發出訊號,表示不應接受也不應產生任何其他訊息,也不應使用任何其他延後的訊息。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
LinkTo(ITargetBlock<Tuple<T1,T2,T3>>, DataflowLinkOptions)

將來源區塊連結至指定的目標區塊。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回表示這個 IDataflowBlock 執行個體之格式化名稱的字串。

TryReceive(Predicate<Tuple<T1,T2,T3>>, Tuple<T1,T2,T3>)

嘗試以同步方式從 IReceivableSourceBlock<TOutput> 接收可用的輸出項目。

TryReceiveAll(IList<Tuple<T1,T2,T3>>)

嘗試以同步方式從 IReceivableSourceBlock<TOutput> 接收所有可用項目。

明確介面實作

IDataflowBlock.Fault(Exception)

造成 IDataflowBlockFaulted 狀態下完成。

ISourceBlock<Tuple<T1,T2,T3>>.ConsumeMessage(DataflowMessageHeader, ITargetBlock<Tuple<T1,T2,T3>>, Boolean)

將 所 DataflowMessageHeader 識別訊息的擁有權從這個 ISourceBlock<TOutput> 實例傳遞至 ITargetBlock<TInput>

ISourceBlock<Tuple<T1,T2,T3>>.ReleaseReservation(DataflowMessageHeader, ITargetBlock<Tuple<T1,T2,T3>>)

釋出將 DataflowMessageHeader 所識別的訊息擁有權,從此 ISourceBlock<TOutput> 傳遞到 ITargetBlock<TInput> 的權利。

ISourceBlock<Tuple<T1,T2,T3>>.ReserveMessage(DataflowMessageHeader, ITargetBlock<Tuple<T1,T2,T3>>)

保留將 DataflowMessageHeader 所識別的訊息擁有權,從此 ISourceBlock<TOutput> 傳遞到 ITargetBlock<TInput> 的權利。

擴充方法

AsObservable<TOutput>(ISourceBlock<TOutput>)

建立在 IObservable<T> 之上的新 ISourceBlock<TOutput> Abstraction。

LinkTo<TOutput>(ISourceBlock<TOutput>, ITargetBlock<TOutput>)

ISourceBlock<TOutput>將 連結到指定的 ITargetBlock<TInput>

LinkTo<TOutput>(ISourceBlock<TOutput>, ITargetBlock<TOutput>, Predicate<TOutput>)

ISourceBlock<TOutput>使用指定的篩選,將 連結到指定的 ITargetBlock<TInput>

LinkTo<TOutput>(ISourceBlock<TOutput>, ITargetBlock<TOutput>, DataflowLinkOptions, Predicate<TOutput>)

ISourceBlock<TOutput>使用指定的篩選,將 連結到指定的 ITargetBlock<TInput>

OutputAvailableAsync<TOutput>(ISourceBlock<TOutput>)

提供 Task<TResult>,以非同步方式監視可用輸出的來源。

OutputAvailableAsync<TOutput>(ISourceBlock<TOutput>, CancellationToken)

提供 Task<TResult>,以非同步方式監視可用輸出的來源。

Receive<TOutput>(ISourceBlock<TOutput>)

以同步方式接收來自指定之來源的值。

Receive<TOutput>(ISourceBlock<TOutput>, CancellationToken)

同步接收指定之來源的值,並提供語彙基元取消作業。

Receive<TOutput>(ISourceBlock<TOutput>, TimeSpan)

同步接收指定之來源的值,觀察選擇性逾時期限。

Receive<TOutput>(ISourceBlock<TOutput>, TimeSpan, CancellationToken)

同步接收指定之來源的值,提供語彙基元取消作業並觀察選擇性逾時間隔。

ReceiveAllAsync<TOutput>(IReceivableSourceBlock<TOutput>, CancellationToken)

建立 , IAsyncEnumerable<T> 以接收來自來源的所有資料。

ReceiveAsync<TOutput>(ISourceBlock<TOutput>)

以非同步方式接收來自指定之來源的值。

ReceiveAsync<TOutput>(ISourceBlock<TOutput>, CancellationToken)

非同步接收指定之來源的值,並提供語彙基元取消作業。

ReceiveAsync<TOutput>(ISourceBlock<TOutput>, TimeSpan)

非同步接收指定之來源的值,觀察選擇性逾時期限。

ReceiveAsync<TOutput>(ISourceBlock<TOutput>, TimeSpan, CancellationToken)

非同步接收指定之來源的值,提供語彙基元取消作業並觀察選擇性逾時間隔。

TryReceive<TOutput>(IReceivableSourceBlock<TOutput>, TOutput)

嘗試以同步方式從 ISourceBlock<TOutput> 接收項目。

適用於