ActionBlock<TInput> Oluşturucular
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Aşırı Yüklemeler
ActionBlock<TInput>(Action<TInput>) |
Belirtilen eylemle sınıfının yeni bir örneğini ActionBlock<TInput> başlatır. |
ActionBlock<TInput>(Func<TInput,Task>) |
Belirtilen eylemle sınıfının yeni bir örneğini ActionBlock<TInput> başlatır. |
ActionBlock<TInput>(Action<TInput>, ExecutionDataflowBlockOptions) |
Belirtilen eylem ve yapılandırma seçenekleriyle sınıfının yeni bir örneğini ActionBlock<TInput> başlatır. |
ActionBlock<TInput>(Func<TInput,Task>, ExecutionDataflowBlockOptions) |
Belirtilen eylem ve yapılandırma seçenekleriyle sınıfının yeni bir örneğini ActionBlock<TInput> başlatır. |
ActionBlock<TInput>(Action<TInput>)
Belirtilen eylemle sınıfının yeni bir örneğini ActionBlock<TInput> başlatır.
public:
ActionBlock(Action<TInput> ^ action);
public ActionBlock (Action<TInput> action);
new System.Threading.Tasks.Dataflow.ActionBlock<'Input> : Action<'Input> -> System.Threading.Tasks.Dataflow.ActionBlock<'Input>
Public Sub New (action As Action(Of TInput))
Parametreler
- action
- Action<TInput>
Alınan her veri öğesiyle çağrılacak eylem.
Özel durumlar
action
, null
değeridir.
Şunlara uygulanır
ActionBlock<TInput>(Func<TInput,Task>)
Belirtilen eylemle sınıfının yeni bir örneğini ActionBlock<TInput> başlatır.
public:
ActionBlock(Func<TInput, System::Threading::Tasks::Task ^> ^ action);
public ActionBlock (Func<TInput,System.Threading.Tasks.Task> action);
new System.Threading.Tasks.Dataflow.ActionBlock<'Input> : Func<'Input, System.Threading.Tasks.Task> -> System.Threading.Tasks.Dataflow.ActionBlock<'Input>
Public Sub New (action As Func(Of TInput, Task))
Parametreler
Özel durumlar
action
, null
değeridir.
Şunlara uygulanır
ActionBlock<TInput>(Action<TInput>, ExecutionDataflowBlockOptions)
Belirtilen eylem ve yapılandırma seçenekleriyle sınıfının yeni bir örneğini ActionBlock<TInput> başlatır.
public:
ActionBlock(Action<TInput> ^ action, System::Threading::Tasks::Dataflow::ExecutionDataflowBlockOptions ^ dataflowBlockOptions);
public ActionBlock (Action<TInput> action, System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions dataflowBlockOptions);
new System.Threading.Tasks.Dataflow.ActionBlock<'Input> : Action<'Input> * System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions -> System.Threading.Tasks.Dataflow.ActionBlock<'Input>
Public Sub New (action As Action(Of TInput), dataflowBlockOptions As ExecutionDataflowBlockOptions)
Parametreler
- action
- Action<TInput>
Alınan her veri öğesiyle çağrılacak eylem.
- dataflowBlockOptions
- ExecutionDataflowBlockOptions
Bu ActionBlock<TInput>öğesinin yapılandırıldığı seçenekler.
Özel durumlar
Örnekler
Aşağıdaki örnekte, yeni ActionBlock<TInput> bir nesne oluşturmak için oluşturucunun ActionBlock<TInput>(Action<TInput>, ExecutionDataflowBlockOptions) nasıl kullanılacağı gösterilmektedir. Bu kod örneği, Nasıl yapılır: Veri Akışı Bloğunda Paralellik Derecesini Belirtme konusu için sağlanan daha büyük bir örneğin bir parçasıdır.
// 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;
}
' Demonstrates how to specify the maximum degree of parallelism
' when using dataflow.
Friend Class Program
' Performs several computations by using dataflow and returns the elapsed
' time required to perform the computations.
Private Shared Function TimeDataflowComputations(ByVal maxDegreeOfParallelism As Integer, ByVal messageCount As Integer) As TimeSpan
' Create an ActionBlock<int> that performs some work.
Dim workerBlock = New ActionBlock(Of Integer)(Function(millisecondsTimeout) Pause(millisecondsTimeout), New ExecutionDataflowBlockOptions() With { .MaxDegreeOfParallelism = maxDegreeOfParallelism})
' Simulate work by suspending the current thread.
' Specify a maximum degree of parallelism.
' Compute the time that it takes for several messages to
' flow through the dataflow block.
Dim stopwatch As New Stopwatch()
stopwatch.Start()
For i As Integer = 0 To messageCount - 1
workerBlock.Post(1000)
Next i
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
End Function
Private Shared Function Pause(ByVal obj As Object)
Thread.Sleep(obj)
Return Nothing
End Function
Şunlara uygulanır
ActionBlock<TInput>(Func<TInput,Task>, ExecutionDataflowBlockOptions)
Belirtilen eylem ve yapılandırma seçenekleriyle sınıfının yeni bir örneğini ActionBlock<TInput> başlatır.
public:
ActionBlock(Func<TInput, System::Threading::Tasks::Task ^> ^ action, System::Threading::Tasks::Dataflow::ExecutionDataflowBlockOptions ^ dataflowBlockOptions);
public ActionBlock (Func<TInput,System.Threading.Tasks.Task> action, System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions dataflowBlockOptions);
new System.Threading.Tasks.Dataflow.ActionBlock<'Input> : Func<'Input, System.Threading.Tasks.Task> * System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions -> System.Threading.Tasks.Dataflow.ActionBlock<'Input>
Public Sub New (action As Func(Of TInput, Task), dataflowBlockOptions As ExecutionDataflowBlockOptions)
Parametreler
- dataflowBlockOptions
- ExecutionDataflowBlockOptions
Bu ActionBlock<TInput>öğesinin yapılandırıldığı seçenekler.