JoinBlock<T1,T2> 類別

定義

提供一個資料流區塊,跨多個資料流來源(不一定是同一類型)連接,等待每個類型有一個項目到達後,才會以一個由每個類型一個項目組成的元組釋出。

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

類型參數

T1

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

T2

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

繼承
JoinBlock<T1,T2>
實作

備註

Note

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

建構函式

名稱 Description
JoinBlock<T1,T2>()

初始化一個新的 JoinBlock<T1,T2>

JoinBlock<T1,T2>(GroupingDataflowBlockOptions)

初始化一個新的 JoinBlock<T1,T2>

屬性

名稱 Description
Completion

會得到 Task 一個,代表非同步操作及資料流區塊的完成。

OutputCount

取得該區塊可接收的輸出項目數量。

Target1

獲得一個目標,可用於提供第一種訊息。

Target2

取得一個目標,可用於提供第二類訊息。

方法

名稱 Description
Complete()

向 S IDataflowBlock 發出訊號,表示不應再接收或產生任何訊息,也不應再消費延後訊息。

Equals(Object)

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

(繼承來源 Object)
GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetType()

取得目前實例的 Type

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

連結 ISourceBlock<TOutput> 至指定的 ITargetBlock<TInput>

MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
ToString()

回傳一個字串,代表該 IDataflowBlock 實例格式化名稱。

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

嘗試同步接收來自 IReceivableSourceBlock<TOutput>的可用輸出項目。

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

嘗試同步接收所有可用的項目。IReceivableSourceBlock<TOutput>

明確介面實作

名稱 Description
IDataflowBlock.Fault(Exception)

導致 在 IDataflowBlock 某個 Faulted 狀態下完成。

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

將由 識別 DataflowMessageHeader 的訊息所有權從此 ISourceBlock<TOutput> 實例傳遞給 ITargetBlock<TInput>

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

釋放將訊息 DataflowMessageHeaderISourceBlock<TOutput>ITargetBlock<TInput>所有權轉移至 。

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

保留將訊息所有 DataflowMessageHeader 權從此 ISourceBlock<TOutput> 轉移至 ITargetBlock<TInput>

擴充方法

名稱 Description
AsObservable<TOutput>(ISourceBlock<TOutput>)

在 上建立一個新的IObservable<T>抽象。ISourceBlock<TOutput>

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

使用指定的過濾器將 連結 ISourceBlock<TOutput> 到 指定 ITargetBlock<TInput> 內容。

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

使用指定的過濾器將 連結 ISourceBlock<TOutput> 到 指定 ITargetBlock<TInput> 內容。

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

連結 ISourceBlock<TOutput> 至指定的 ITargetBlock<TInput>

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

提供非同步監控來源可用輸出的 A Task<TResult>

OutputAvailableAsync<TOutput>(ISourceBlock<TOutput>)

提供非同步監控來源可用輸出的 A Task<TResult>

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

同步接收指定來源的值,並提供一個令牌以取消該操作。

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

同步接收指定來源的值,提供取消操作的標記,並觀察可選的逾時間隔。

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

同步接收指定來源的值,並觀察可選的逾時期。

Receive<TOutput>(ISourceBlock<TOutput>)

同步接收指定來源的值。

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

建立一個 IAsyncEnumerable<T> 能從來源接收所有資料的

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

非同步接收指定來源的值,並提供一個令牌以取消操作。

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

非同步接收指定來源的值,提供取消操作的標記,並觀察可選的逾時間隔。

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

非同步接收指定來源的值,並觀察可選的逾時期。

ReceiveAsync<TOutput>(ISourceBlock<TOutput>)

非同步地從指定來源接收一個值。

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

嘗試同步接收來自 ISourceBlock<TOutput>的項目。

適用於