0Pricing
C# Academy · Lezione

Async e await: lavorare con codice asincrono

Padroneggi la programmazione asincrona per creare applicazioni reattive

Async e await: lavorare con codice asincrono è una lezione C# Academy gratuita su CoddyKit. Questa è la lezione 2 di 5. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C# Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C# Academy include 5 lezioni in totale.

Introduzione ad async e await

Async e Await: lavorare con il codice asincrono

Benvenuto alla lezione successiva! In questa lezione imparerà a utilizzare async e await in C# per scrivere codice asincrono che migliora la reattività e le prestazioni dell'applicazione. Iniziamo!

Async e await: lavorare con codice asincrono — illustrazione 1

Che cos'è la programmazione asincrona?

Che cos'è la programmazione asincrona?

La programmazione asincrona consente alle operazioni di essere eseguite in modo indipendente senza bloccare il thread principale. È particolarmente utile per operazioni come la lettura di file, il recupero di dati da Internet o l'interazione con i database.

Punto chiave: il codice asincrono migliora la reattività dell'applicazione, soprattutto nelle applicazioni con interfaccia utente e nei server.

Comprendere async e await

Comprendere async e await

async e await sono parole chiave in C# che semplificano la programmazione asincrona:

  • async: indica un metodo come asincrono.
  • await: sospende l'esecuzione del metodo finché l'operazione attesa non viene completata.

Punto chiave: i metodi asincroni restituiscono sempre un Task o un Task<T>.

Creare un metodo asincrono

Creare un metodo asincrono

Creiamo un metodo asincrono per simulare un'operazione di lunga durata. Esempio:

Suggerimento: utilizzi Task.Delay() per simulare ritardi nelle operazioni asincrone.

using System;
using System.Threading.Tasks;

class Program {
    static async Task Main() {
        Console.WriteLine("Starting task...");
        await PerformTask();
        Console.WriteLine("Task completed!");
    }

    static async Task PerformTask() {
        await Task.Delay(3000); // Simulates a 3-second delay
        Console.WriteLine("Task is running...");
    }
}

Restituire un valore da un metodo asincrono

Restituire un valore da un metodo asincrono

I metodi asincroni possono restituire valori utilizzando Task<T>. Esempio:

using System;
using System.Threading.Tasks;

class Program {
    static async Task Main() {
        int result = await CalculateSumAsync(10, 20);
        Console.WriteLine("Result: " + result);
    }

    static async Task<int> CalculateSumAsync(int a, int b) {
        await Task.Delay(1000); // Simulates a delay
        return a + b;
    }
}

Gestire le eccezioni nel codice asincrono

Gestire le eccezioni nel codice asincrono

Utilizzi try-catch per gestire le eccezioni nei metodi asincroni. Esempio:

using System;
using System.Threading.Tasks;

class Program {
    static async Task Main() {
        try {
            await DivideAsync(10, 0);
        } catch (Exception ex) {
            Console.WriteLine("Error: " + ex.Message);
        }
    }

    static async Task DivideAsync(int a, int b) {
        await Task.Delay(1000);
        if (b == 0) throw new DivideByZeroException("Cannot divide by zero.");
        Console.WriteLine("Result: " + (a / b));
    }
}

Sfida pratica

Sfida pratica

Crei un metodo asincrono che recuperi dati da un URL e ne visualizzi il contenuto. Esempio:

using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program {
    static async Task Main() {
        string url = "https://jsonplaceholder.typicode.com/todos/1";
        string data = await FetchDataAsync(url);
        Console.WriteLine("Data: " + data);
    }

    static async Task<string> FetchDataAsync(string url) {
        using HttpClient client = new HttpClient();
        return await client.GetStringAsync(url);
    }
}

Buone pratiche per la programmazione asincrona

Buone pratiche per la programmazione asincrona

Ecco alcune buone pratiche:

  • Utilizzi async e await per le attività che coinvolgono operazioni di I/O o calcoli di lunga durata.
  • Eviti di bloccare il codice asincrono con .Result o .Wait().
  • Gestisca le eccezioni per evitare errori non gestiti.
  • Utilizzi ConfigureAwait(false) nel codice delle librerie per evitare deadlock.

Suggerimento: mantenga i metodi asincroni concisi e focalizzati su una singola responsabilità.

Ottimo lavoro!

Ottimo lavoro!

Congratulazioni! Ha imparato a utilizzare async e await per scrivere codice asincrono in C#. Nella prossima lezione esploreremo thread e task per la programmazione parallela. Continuiamo a programmare!

Faccia clic su Continua per passare alla lezione successiva.

Async e await: lavorare con codice asincrono — illustrazione 10

Domande Frequenti

La lezione «Async e await: lavorare con codice asincrono» è gratuita?

Sì — il testo completo di «Async e await: lavorare con codice asincrono» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C# Academy, passa a CoddyKit PRO. Il corso C# Academy include 5 lezioni in totale.

Cosa imparerò in «Async e await: lavorare con codice asincrono»?

Padroneggi la programmazione asincrona per creare applicazioni reattive Eserciti C# Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare C# Academy?

Non è richiesta alcuna esperienza precedente. C# Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 5.

Quanto tempo richiede la lezione «Async e await: lavorare con codice asincrono»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione C# Academy?

Sì. Ogni lezione C# Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Generics in C#
  2. Async e await: lavorare con codice asincrono
  3. Capire thread e task
  4. Esplorare delegati e lambda
  5. Capire la reflection in C#
← Torna a C# Academy