Tento článek byl přeložený strojově. Pokud chcete zobrazit článek v angličtině, zaškrtněte políčko Angličtina. Anglickou verzi článku můžete také zobrazit v místním okně přesunutím ukazatele myši nad text.
Překlad
Angličtina

Třída ActionBlock<TInput>

 

Poskytuje bloku toku dat, která volá zadaný Action<T> Delegovat pro každý datový prvek přijata.

Obor názvů:   System.Threading.Tasks.Dataflow
Sestavení:  System.Threading.Tasks.Dataflow (v System.Threading.Tasks.Dataflow.dll)

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

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

Parametry typu

TInput

Typ dat, které tento ActionBlock<TInput> pracovat.

NázevPopis
System_CAPS_pubmethodActionBlock<TInput>(Action<TInput>)

Inicializuje novou instanci třídy ActionBlock<TInput> Třída spolu s určenou akcí.

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

Inicializuje novou instanci třídy ActionBlock<TInput> se zadanou akcí a konfigurační možnosti.

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

Inicializuje novou instanci třídy ActionBlock<TInput> Třída spolu s určenou akcí.

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

Inicializuje novou instanci třídy ActionBlock<TInput> se zadanou akcí a konfigurační možnosti.

NázevPopis
System_CAPS_pubpropertyCompletion

Získá Task objekt, který reprezentuje asynchronní operaci a dokončení bloku toku dat.

System_CAPS_pubpropertyInputCount

Získá počet vstupních položek, které čekají na zpracování podle tohoto bloku.

NázevPopis
System_CAPS_pubmethodComplete()

Signály, které bloku toku dat, který by neměl přijměte nebo produktu víc zpráv a neměl spotřebovávat všechny více odložených zprávy.

System_CAPS_pubmethodEquals(Object)

(Zděděno z Object.)

System_CAPS_pubmethodGetHashCode()

(Zděděno z Object.)

System_CAPS_pubmethodGetType()

(Zděděno z Object.)

System_CAPS_pubmethodPost(TInput)

Odešle položku, kterou chcete bloku toku dat cíl.

System_CAPS_pubmethodToString()

Vrátí řetězec, který představuje formátovaný název tohoto IDataflowBlock instance.(Přepisuje Object.ToString().)

NázevPopis
System_CAPS_pubinterfaceSystem_CAPS_privmethodIDataflowBlock.Fault(Exception)

Způsobí, že bloku toku dat pro dokončení v chybovém stavu.

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

Nabízí zprávu do bloku toku dat a nastaví možnost využívat nebo odložit zprávy.

NázevPopis
System_CAPS_pubmethodAsObserver<TInput>()

Vytvoří nový IObserver<T> abstrakci přes ITargetBlock<TInput>.(Definoval DataflowBlock.)

System_CAPS_pubmethodPost<TInput>(TInput)

Odešle položku, kterou chcete ITargetBlock<TInput>.(Definoval DataflowBlock.)

System_CAPS_pubmethodSendAsync<TInput>(TInput)

Přetížené Asynchronně nabízí zprávu pro cílový blok zpráva, aby vám umožnil odložení.(Definoval DataflowBlock.)

System_CAPS_pubmethodSendAsync<TInput>(TInput, CancellationToken)

Přetížené Asynchronně nabízí zprávu pro cílový blok zpráva, aby vám umožnil odložení.(Definoval DataflowBlock.)

System_CAPS_notePoznámka

Knihovna toku dat TPL (System.Threading.Tasks.Dataflow oboru názvů) není distribuované s net_v45. K instalaci System.Threading.Tasks.Dataflow obor názvů, otevřete projekt v Visual Studio 2012, zvolte spravovat balíčky NuGet z nabídky projektu a vyhledejte online Microsoft.Tpl.Dataflow balíčku.

Následující příklad ukazuje použití ActionBlock<TInput> třídy provést několik výpočtů pomocí bloků toku dat a vrátí uplynulý čas potřebný k provádění výpočtů. Tento příklad kódu je součástí většího příkladu určeného pro Postupy: Určení stupně paralelního zpracování v bloku toku dat tématu.

// 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;
}

Všechny veřejné statické členy ( Sdílené v jazyce Visual Basic) tohoto typu mají bezpečný přístup z více vláken. U členů instancí není bezpečný přístup z více vláken zaručen.

Zpět na začátek
Zobrazit: