Eventi
17 mar, 21 - 21 mar, 10
Partecipa alla serie meetup per creare soluzioni di intelligenza artificiale scalabili basate su casi d'uso reali con altri sviluppatori ed esperti.
Esegui registrazioneQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare le funzionalità più recenti, gli aggiornamenti della sicurezza e il supporto tecnico.
In .NET sono disponibili tre modelli per l'esecuzione di operazioni asincrone:
Modello asincrono basato su attività , che usa un singolo metodo per rappresentare l'avvio e il completamento di un'operazione asincrona. TAP è stato introdotto in .NET Framework 4. È l'approccio consigliato per la programmazione asincrona in .NET. Le parole chiave async e await in C# e gli operatori Async e Await in Visual Basic aggiungono il supporto del linguaggio per TAP. Per altre informazioni, vedere Task-based Asynchronous Pattern (TAP) (Modello asincrono basato su attività, TAP).
Modello asincrono basato su eventi (EAP), ovvero il modello legacy basato su eventi per fornire il comportamento asincrono. Richiede un metodo con il suffisso Async
e uno o più eventi, i tipi delegati del gestore eventi e i tipi derivati da EventArg
. EAP è stato introdotto in .NET Framework 2.0. Questo modello non è più consigliato per i nuovi progetti di sviluppo. Per ulteriori informazioni, vedere Event-based Asynchronous Pattern (EAP) (Modello asincrono basato su eventi, EAP).
Il modello di programmazione asincrona (APM) (chiamato anche modello IAsyncResult) è il modello legacy che usa l'interfaccia IAsyncResult per fornire il comportamento asincrono. In questo modello, le operazioni sincrone richiedono i metodi Begin
e End
(ad esempio BeginWrite
e EndWrite
per implementare un'operazione di scrittura asincrona). Questo modello non è più consigliato per i nuovi sviluppi. Per altre informazioni, vedere Asynchronous Programming Model (APM) (Modello di programmazione asincrona, APM).
Per un rapido confronto tra le procedure delle operazioni asincrone dei tre modelli, considerare un metodo Read
che legga una specifica quantità di rati in un determinato buffer, iniziando da uno specifico offset:
public class MyClass
{
public int Read(byte [] buffer, int offset, int count);
}
La controparte TAP di questo metodo espone il seguente metodo ReadAsync
singolo:
public class MyClass
{
public Task<int> ReadAsync(byte [] buffer, int offset, int count);
}
La controparte EAP esporrà il seguente set di tipi e membri:
public class MyClass
{
public void ReadAsync(byte [] buffer, int offset, int count);
public event ReadCompletedEventHandler ReadCompleted;
}
La controparte APM espone i metodi BeginRead
e EndRead
:
public class MyClass
{
public IAsyncResult BeginRead(
byte [] buffer, int offset, int count,
AsyncCallback callback, object state);
public int EndRead(IAsyncResult asyncResult);
}
Eventi
17 mar, 21 - 21 mar, 10
Partecipa alla serie meetup per creare soluzioni di intelligenza artificiale scalabili basate su casi d'uso reali con altri sviluppatori ed esperti.
Esegui registrazioneTraining
Modulo
Apply interfaces in code - Training
Discover how default implementations in interfaces enable you to add new methods directly into an interface and provide a default implementation.
Documentazione
Documentazione sulla programmazione avanzata di .NET
Informazioni sui concetti di programmazione avanzati in .NET, ad esempio threading, programmazione parallela, modelli di programmazione asincrona, interoperabilità nativa e gestione della memoria.
Modello asincrono basato su attività (TAP): Introduzione e panoramica - .NET
Informazioni sul Modello asincrono basato su attività (TAP) e confronto con i modelli legacy: Modello di programmazione asincrona (APM) e Modello asincrono basato su eventi (EAP).
Implementazione del modello asincrono basato su attività - .NET
Questo articolo illustra come implementare il modello asincrono basato su attività. È possibile usarlo per implementare operazioni asincrone associate a calcolo e associate a I/O.