Come usare asincroni e attendere in c#

Come usare asincroni e attendere in c#
L'asincronizzazione e l'attesa sono metodi potenti in C# che ti consentono di eseguire operazioni che richiedono tempo senza bloccare il thread principale. Una delle funzioni chiave di C# che supporta la programmazione asincrona è l'asincronizzazione () e l'attesa (). Questo articolo spiegherà quali sono l'asincronizzazione e l'attesa e come vengono utilizzati nella programmazione C#.

Cos'è Async in C#

Il metodo Async () funziona in modo sincrono fino a quando non raggiunge la sua prima espressione. L'asincronizza.

asincrone ()

// Asincrona attesa per completare alcune operazioni
// Restituisci un'attività o un oggetto dell'attività

Ecco i cambiamenti nella sintassi:

  • : Il tipo di restituzione del metodo, questo può essere qualsiasi tipo di dati C# valido.
  • : Il nome del metodo.
  • : I parametri del metodo. Questi possono essere tutti i tipi di dati C# validi.

Cosa è atteso in C#

L'attesa () viene utilizzato per mettere in pausa l'esecuzione del metodo fino al completamento dell'operazione asincrona, ecco la sintassi per questa funzione:

Aspetta

Ecco i cambiamenti nella sintassi:

  • : Il tipo di risultato che l'operazione asincrona restituisce.
  • : La variabile che memorizza il risultato dell'operazione asincrona.
  • : La chiamata del metodo che esegue l'operazione asincrona.

Come usare asincroni e attendere in c#

Usando Async e Aspetta, è possibile creare un codice più reattivo ed efficiente, in quanto libera il thread principale per gestire altre operazioni mentre le operazioni asincroni sono in esecuzione in background. Di seguito è riportato il codice di esempio che utilizza sia l'asincronizzazione che l'attesa e dimostra come usare l'asincronizzazione e attendere per eseguire operazioni non bloccanti e asincroni in C#.

usando il sistema;
Utilizzo del sistema.Filo.Compiti;
Programma di classe

statico void main (string [] args)

Console.WriteLine ("Avvia calcolo");
// Avvia un'attività per aggiungere 2 e 3 asincroni
Attività attività1 = addasync (2, 3);
Console.WriteLine ("Aggiunta ...");
// Avvia un'attività per sottrarre 5 da 10 asincrono
Task Task2 = SubtractaSync (10, 5);
Console.WriteLine ("Sottrating ...");
// Attendi il completamento della prima attività e ottenere il risultato
int risultato1 = task1.Risultato;
Console.WriteLine ($ "2 + 3 = risultato1");
// Attendere il completamento della seconda attività e ottenere il risultato
int risultato2 = task2.Risultato;
Console.WriteLine ($ "10 - 5 = risultato2");
Console.WriteLine ("Calcolo completo!");

// Un metodo che aggiunge due numeri in modo asincrono
Async statico TaskAddasync (int a, int b)

Aspetta il compito.Ritardo (1000); // simula un certo ritardo
restituire a + b;

// Un metodo che sottrae due numeri in modo asincrono
TasksutraSync (int a, int b) (int a, int b) statico statico

Aspetta il compito.Ritardo (1000); // simula un certo ritardo
restituire a - b;

Nel codice, i metodi AddAsync e SumtraSync usano la parola chiave di attesa per indicare che stanno eseguendo un'operazione asincrona, che in questo caso è un ritardo simulato utilizzando questa funzione di ritardo (). Ciò consente ai metodi di tornare immediatamente senza bloccare il thread principale.

Nel metodo principale, i metodi AddAsync e SumtraSync sono chiamati utilizzando la parola chiave di attesa per attendere in modo asincrono i risultati delle operazioni. Ciò consente al programma di continuare a eseguire ed eseguire altre attività in attesa che le operazioni asincroni.

Una volta completate le attività, la proprietà del risultato viene utilizzata per recuperare il risultato di ciascuna attività e stampare sulla console. Ecco l'output del codice di cui abbiamo discusso in precedenza che esegue l'aggiunta e la sottrazione usando Async e Attenzione:

Conclusione

La programmazione asincrona può fornire diversi vantaggi per l'applicazione, tra cui prestazioni migliorate, maggiore reattività e codice semplificato. Utilizzando tecniche di programmazione asincrona, è possibile creare applicazioni più efficienti e reattive in C#. La parola chiave Async viene utilizzata con il nome della funzione per farlo funzionare in modo asincrono mentre l'attesa sospende l'operazione fino a quando il metodo asincrono termina l'esecuzione e stampa il risultato.