ConcurrentExclusiveSchedulerPair Constructors
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Initialiseert een nieuw exemplaar van de ConcurrentExclusiveSchedulerPair klasse.
Overloads
| Name | Description |
|---|---|
| ConcurrentExclusiveSchedulerPair() |
Initialiseert een nieuw exemplaar van de ConcurrentExclusiveSchedulerPair klasse. |
| ConcurrentExclusiveSchedulerPair(TaskScheduler) |
Initialiseert een nieuw exemplaar van de ConcurrentExclusiveSchedulerPair klasse die is gericht op de opgegeven planner. |
| ConcurrentExclusiveSchedulerPair(TaskScheduler, Int32) |
Initialiseert een nieuw exemplaar van de ConcurrentExclusiveSchedulerPair klasse die is gericht op de opgegeven scheduler met een maximum gelijktijdigheidsniveau. |
| ConcurrentExclusiveSchedulerPair(TaskScheduler, Int32, Int32) |
Initialiseert een nieuw exemplaar van de klasse die is gericht op de ConcurrentExclusiveSchedulerPair opgegeven scheduler met een maximum gelijktijdigheidsniveau en een maximum aantal geplande taken dat kan worden verwerkt als een eenheid. |
ConcurrentExclusiveSchedulerPair()
Initialiseert een nieuw exemplaar van de ConcurrentExclusiveSchedulerPair klasse.
public:
ConcurrentExclusiveSchedulerPair();
public ConcurrentExclusiveSchedulerPair();
Public Sub New ()
Voorbeelden
In het volgende voorbeeld ziet u het gebruik van de ConcurrentExclusiveSchedulerPair constructor om een nieuw ConcurrentExclusiveSchedulerPair object te maken. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor het artikel Instructies: Een taakplanner opgeven in een artikel over blokgegevensstromen .
// Create a ConcurrentExclusiveSchedulerPair object.
// Readers will run on the concurrent part of the scheduler pair.
// The writer will run on the exclusive part of the scheduler pair.
var taskSchedulerPair = new ConcurrentExclusiveSchedulerPair();
// Create an ActionBlock<int> object for each reader CheckBox object.
// Each ActionBlock<int> object represents an action that can read
// from a resource in parallel to other readers.
// Specifying the concurrent part of the scheduler pair enables the
// reader to run in parallel to other actions that are managed by
// that scheduler.
var readerActions =
from checkBox in new CheckBox[] { checkBox1, checkBox2, checkBox3 }
select new ActionBlock<int>(milliseconds =>
{
// Toggle the check box to the checked state.
toggleCheckBox.Post(checkBox);
// Perform the read action. For demonstration, suspend the current
// thread to simulate a lengthy read operation.
Thread.Sleep(milliseconds);
// Toggle the check box to the unchecked state.
toggleCheckBox.Post(checkBox);
},
new ExecutionDataflowBlockOptions
{
TaskScheduler = taskSchedulerPair.ConcurrentScheduler
});
// Create an ActionBlock<int> object for the writer CheckBox object.
// This ActionBlock<int> object represents an action that writes to
// a resource, but cannot run in parallel to readers.
// Specifying the exclusive part of the scheduler pair enables the
// writer to run in exclusively with respect to other actions that are
// managed by the scheduler pair.
var writerAction = new ActionBlock<int>(milliseconds =>
{
// Toggle the check box to the checked state.
toggleCheckBox.Post(checkBox4);
// Perform the write action. For demonstration, suspend the current
// thread to simulate a lengthy write operation.
Thread.Sleep(milliseconds);
// Toggle the check box to the unchecked state.
toggleCheckBox.Post(checkBox4);
},
new ExecutionDataflowBlockOptions
{
TaskScheduler = taskSchedulerPair.ExclusiveScheduler
});
// Link the broadcaster to each reader and writer block.
// The BroadcastBlock<T> class propagates values that it
// receives to all connected targets.
foreach (var readerAction in readerActions)
{
broadcaster.LinkTo(readerAction);
}
broadcaster.LinkTo(writerAction);
' Create a ConcurrentExclusiveSchedulerPair object.
' Readers will run on the concurrent part of the scheduler pair.
' The writer will run on the exclusive part of the scheduler pair.
Dim taskSchedulerPair = New ConcurrentExclusiveSchedulerPair()
' Create an ActionBlock<int> object for each reader CheckBox object.
' Each ActionBlock<int> object represents an action that can read
' from a resource in parallel to other readers.
' Specifying the concurrent part of the scheduler pair enables the
' reader to run in parallel to other actions that are managed by
' that scheduler.
Dim readerActions = From checkBox In New CheckBox() {checkBox1, checkBox2, checkBox3}
Select New ActionBlock(Of Integer)(Sub(milliseconds)
' Toggle the check box to the checked state.
' Perform the read action. For demonstration, suspend the current
' thread to simulate a lengthy read operation.
' Toggle the check box to the unchecked state.
toggleCheckBox.Post(checkBox)
Thread.Sleep(milliseconds)
toggleCheckBox.Post(checkBox)
End Sub, New ExecutionDataflowBlockOptions With {.TaskScheduler = taskSchedulerPair.ConcurrentScheduler})
' Create an ActionBlock<int> object for the writer CheckBox object.
' This ActionBlock<int> object represents an action that writes to
' a resource, but cannot run in parallel to readers.
' Specifying the exclusive part of the scheduler pair enables the
' writer to run in exclusively with respect to other actions that are
' managed by the scheduler pair.
Dim writerAction = New ActionBlock(Of Integer)(Sub(milliseconds)
' Toggle the check box to the checked state.
' Perform the write action. For demonstration, suspend the current
' thread to simulate a lengthy write operation.
' Toggle the check box to the unchecked state.
toggleCheckBox.Post(checkBox4)
Thread.Sleep(milliseconds)
toggleCheckBox.Post(checkBox4)
End Sub, New ExecutionDataflowBlockOptions With {.TaskScheduler = taskSchedulerPair.ExclusiveScheduler})
' Link the broadcaster to each reader and writer block.
' The BroadcastBlock<T> class propagates values that it
' receives to all connected targets.
For Each readerAction In readerActions
broadcaster.LinkTo(readerAction)
Next readerAction
broadcaster.LinkTo(writerAction)
Van toepassing op
ConcurrentExclusiveSchedulerPair(TaskScheduler)
Initialiseert een nieuw exemplaar van de ConcurrentExclusiveSchedulerPair klasse die is gericht op de opgegeven planner.
public:
ConcurrentExclusiveSchedulerPair(System::Threading::Tasks::TaskScheduler ^ taskScheduler);
public ConcurrentExclusiveSchedulerPair(System.Threading.Tasks.TaskScheduler taskScheduler);
new System.Threading.Tasks.ConcurrentExclusiveSchedulerPair : System.Threading.Tasks.TaskScheduler -> System.Threading.Tasks.ConcurrentExclusiveSchedulerPair
Public Sub New (taskScheduler As TaskScheduler)
Parameters
- taskScheduler
- TaskScheduler
De doelplanner waarop dit paar moet worden uitgevoerd.
Van toepassing op
ConcurrentExclusiveSchedulerPair(TaskScheduler, Int32)
Initialiseert een nieuw exemplaar van de ConcurrentExclusiveSchedulerPair klasse die is gericht op de opgegeven scheduler met een maximum gelijktijdigheidsniveau.
public:
ConcurrentExclusiveSchedulerPair(System::Threading::Tasks::TaskScheduler ^ taskScheduler, int maxConcurrencyLevel);
public ConcurrentExclusiveSchedulerPair(System.Threading.Tasks.TaskScheduler taskScheduler, int maxConcurrencyLevel);
new System.Threading.Tasks.ConcurrentExclusiveSchedulerPair : System.Threading.Tasks.TaskScheduler * int -> System.Threading.Tasks.ConcurrentExclusiveSchedulerPair
Public Sub New (taskScheduler As TaskScheduler, maxConcurrencyLevel As Integer)
Parameters
- taskScheduler
- TaskScheduler
De doelplanner waarop dit paar moet worden uitgevoerd.
- maxConcurrencyLevel
- Int32
Het maximum aantal taken dat gelijktijdig moet worden uitgevoerd.
Van toepassing op
ConcurrentExclusiveSchedulerPair(TaskScheduler, Int32, Int32)
Initialiseert een nieuw exemplaar van de klasse die is gericht op de ConcurrentExclusiveSchedulerPair opgegeven scheduler met een maximum gelijktijdigheidsniveau en een maximum aantal geplande taken dat kan worden verwerkt als een eenheid.
public:
ConcurrentExclusiveSchedulerPair(System::Threading::Tasks::TaskScheduler ^ taskScheduler, int maxConcurrencyLevel, int maxItemsPerTask);
public ConcurrentExclusiveSchedulerPair(System.Threading.Tasks.TaskScheduler taskScheduler, int maxConcurrencyLevel, int maxItemsPerTask);
new System.Threading.Tasks.ConcurrentExclusiveSchedulerPair : System.Threading.Tasks.TaskScheduler * int * int -> System.Threading.Tasks.ConcurrentExclusiveSchedulerPair
Public Sub New (taskScheduler As TaskScheduler, maxConcurrencyLevel As Integer, maxItemsPerTask As Integer)
Parameters
- taskScheduler
- TaskScheduler
De doelplanner waarop dit paar moet worden uitgevoerd.
- maxConcurrencyLevel
- Int32
Het maximum aantal taken dat gelijktijdig moet worden uitgevoerd.
- maxItemsPerTask
- Int32
Het maximum aantal taken dat moet worden verwerkt voor elke onderliggende geplande taak die door het paar wordt gebruikt.