本文為機器翻譯文章。如需檢視英文版,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文

ActionBlock<TInput> 類別

 

提供資料流程區塊會叫用提供 Action<T> 委派的每個收到的資料項目。

命名空間:   System.Threading.Tasks.Dataflow
組件:  System.Threading.Tasks.Dataflow (於 System.Threading.Tasks.Dataflow.dll)

System.Object
  System.Threading.Tasks.Dataflow.ActionBlock<TInput>

public sealed class ActionBlock<TInput> : ITargetBlock<TInput>, 
	IDataflowBlock

類型參數

TInput

資料型別這 ActionBlock<TInput> 上運作。

名稱描述
System_CAPS_pubmethodActionBlock<TInput>(Action<TInput>)

初始化的新執行個體 ActionBlock<TInput> 具有指定之動作的類別。

System_CAPS_pubmethodActionBlock<TInput>(Action<TInput>, ExecutionDataflowBlockOptions)

初始化的新執行個體 ActionBlock<TInput> 類別具有指定的動作和組態選項。

System_CAPS_pubmethodActionBlock<TInput>(Func<TInput, Task>)

初始化的新執行個體 ActionBlock<TInput> 具有指定之動作的類別。

System_CAPS_pubmethodActionBlock<TInput>(Func<TInput, Task>, ExecutionDataflowBlockOptions)

初始化的新執行個體 ActionBlock<TInput> 類別具有指定的動作和組態選項。

名稱描述
System_CAPS_pubpropertyCompletion

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

System_CAPS_pubpropertyInputCount

取得等待此區塊所處理的輸入項目數目。

名稱描述
System_CAPS_pubmethodComplete()

發出訊號給資料流程區塊,它不應該接受或產生其他任何訊息,並不應該使用任何多延後的訊息。

System_CAPS_pubmethodEquals(Object)

(繼承自 Object。)

System_CAPS_pubmethodGetHashCode()

(繼承自 Object。)

System_CAPS_pubmethodGetType()

(繼承自 Object。)

System_CAPS_pubmethodPost(TInput)

公佈到目標資料流程區塊的項目。

System_CAPS_pubmethodToString()

傳回字串,代表這個名稱格式化 IDataflowBlock 執行個體。(覆寫 Object.ToString()。)

名稱描述
System_CAPS_pubinterfaceSystem_CAPS_privmethodIDataflowBlock.Fault(Exception)

會導致錯誤的狀態中完成的資料流程區塊。

System_CAPS_pubinterfaceSystem_CAPS_privmethodITargetBlock<TInput>.OfferMessage(DataflowMessageHeader, TInput, ISourceBlock<TInput>, Boolean)

提供訊息給資料流程區塊,並讓它能夠使用或延後的訊息。

名稱描述
System_CAPS_pubmethodAsObserver<TInput>()

建立新 IObserver<T> 抽象 ITargetBlock<TInput>(由 DataflowBlock 定義。)

System_CAPS_pubmethodPost<TInput>(TInput)

張貼的項目 ITargetBlock<TInput>(由 DataflowBlock 定義。)

System_CAPS_pubmethodSendAsync<TInput>(TInput)

多載。以非同步的方式提供目標訊息區塊,可讓延後的訊息。(由 DataflowBlock 定義。)

System_CAPS_pubmethodSendAsync<TInput>(TInput, CancellationToken)

多載。以非同步的方式提供目標訊息區塊,可讓延後的訊息。(由 DataflowBlock 定義。)

System_CAPS_note注意

TPL 資料流程程式庫 (System.Threading.Tasks.Dataflow 命名空間) 並未隨附 net_v45。 若要安裝 System.Threading.Tasks.Dataflow 命名空間,請在 Visual Studio 2012 中開啟您的專案,從 [專案] 功能表中選擇 [管理 NuGet 封裝],然後在線上搜尋 Microsoft.Tpl.Dataflow 封裝。

下列範例示範使用 ActionBlock<TInput> 類別來執行數個使用資料流程區塊的計算並傳回執行計算所需的經過時間。 這個程式碼範例會提供範例的一部分 How to: Specify the Degree of Parallelism in a Dataflow Block 主題。

// Performs several computations by using dataflow and returns the elapsed
// time required to perform the computations.
static TimeSpan TimeDataflowComputations(int maxDegreeOfParallelism,
   int messageCount)
{
   // Create an ActionBlock<int> that performs some work.
   var workerBlock = new ActionBlock<int>(
      // Simulate work by suspending the current thread.
      millisecondsTimeout => Thread.Sleep(millisecondsTimeout),
      // Specify a maximum degree of parallelism.
      new ExecutionDataflowBlockOptions
      {
         MaxDegreeOfParallelism = maxDegreeOfParallelism
      });

   // Compute the time that it takes for several messages to 
   // flow through the dataflow block.

   Stopwatch stopwatch = new Stopwatch();
   stopwatch.Start();

   for (int i = 0; i < messageCount; i++)
   {
      workerBlock.Post(1000);
   }
   workerBlock.Complete();

   // Wait for all messages to propagate through the network.
   workerBlock.Completion.Wait();

   // Stop the timer and return the elapsed number of milliseconds.
   stopwatch.Stop();
   return stopwatch.Elapsed;
}

此類型的任何 public static (在 Visual Basic 中 共用 在 Visual Basic 中) 成員皆為安全執行緒。不保證任何執行個體成員為安全執行緒。

回到頁首
顯示: