Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
.NET biedt drie patronen voor het uitvoeren van asynchrone bewerkingen:
Op taken gebaseerd Asynchroon patroon (TAP) dat gebruikmaakt van één methode voor het starten en voltooien van een asynchrone bewerking. TAP is geïntroduceerd in .NET Framework 4. Het is de aanbevolen benadering voor asynchrone programmering in .NET. De asynchrone trefwoorden in C# en de operators Async en Await in Visual Basic voegen taalondersteuning toe voor TAP. Zie voor meer informatie Asynchroon patroon op basis van taken (TAP).
Asynchroon patroon (EAP) op basis van gebeurtenissen. Dit is het verouderde model op basis van gebeurtenissen voor het bieden van asynchroon gedrag. Hiervoor is een methode vereist met het
Async
achtervoegsel en een of meer gebeurtenissen, gedelegeerdentypen voor gebeurtenishandlers enEventArg
-afgeleide typen. EAP is geïntroduceerd in .NET Framework 2.0. Het wordt niet meer aanbevolen voor nieuwe ontwikkeling. Voor meer informatie, zie Op gebeurtenis gebaseerd asynchroon patroon (EAP).Asynchroon programmeermodelpatroon (APM) (ook wel het IAsyncResult patroon genoemd), het verouderde model dat gebruikmaakt van de IAsyncResult interface om asynchroon gedrag te bieden. In dit patroon vereisen asynchrone bewerkingen
Begin
enEnd
methoden (bijvoorbeeldBeginWrite
enEndWrite
om een asynchrone schrijfhandeling te implementeren). Dit patroon wordt niet meer aanbevolen voor nieuwe ontwikkeling. Zie Asynchroon programmeermodel (APM) voor meer informatie.
Vergelijking van patronen
Voor een snelle vergelijking van hoe de asynchrone bewerkingen van het drie patronenmodel worden gebruikt, kunt u een methode overwegen waarmee een Read
opgegeven hoeveelheid gegevens in een opgegeven buffer wordt gelezen, te beginnen bij een opgegeven offset:
public class MyClass
{
public int Read(byte [] buffer, int offset, int count);
}
De TAP-tegenhanger van deze methode zou de volgende enkele ReadAsync
methode beschikbaar maken:
public class MyClass
{
public Task<int> ReadAsync(byte [] buffer, int offset, int count);
}
De EAP-tegenhanger zou de volgende set typen en leden beschikbaar maken:
public class MyClass
{
public void ReadAsync(byte [] buffer, int offset, int count);
public event ReadCompletedEventHandler ReadCompleted;
}
De APM-tegenhanger zou de BeginRead
en EndRead
methoden beschikbaar maken:
public class MyClass
{
public IAsyncResult BeginRead(
byte [] buffer, int offset, int count,
AsyncCallback callback, object state);
public int EndRead(IAsyncResult asyncResult);
}