June 11, 2024

JaiHoDevs

What is Async and Await With examples in C#

async and await are keywords in C# introduced in .NET Framework 4.5 (and later versions) to simplify asynchronous programming. They enable you to write asynchronous code that looks and behaves more like synchronous code, making it easier to work with asynchronous operations such as network requests, file I/O, or long-running computations without blocking the calling thread.

Here's how async and await work:

  • async: The async keyword is used to define a method as asynchronous. An asynchronous method can contain one or more await expressions and typically returns a Task, Task<T>, or ValueTask<T>.

  • await: The await keyword is used to asynchronously wait for the completion of an asynchronous operation (such as a task) inside an async method. It allows the calling thread to be released and resume execution when the awaited operation completes.

What is Async and Await With examples in C#


Here's a basic example demonstrating the usage of async and await:

using System;

using System.Net.Http;

using System.Threading.Tasks;


class Program

{

    static async Task Main()

    {

        // Asynchronously download content from a URL

        string content = await DownloadContentAsync("https://example.com");

        

        // Once content is downloaded, print it

        Console.WriteLine(content);

    }


    static async Task<string> DownloadContentAsync(string url)

    {

        using (HttpClient client = new HttpClient())

        {

            // Asynchronously send an HTTP GET request

            HttpResponseMessage response = await client.GetAsync(url);


            // Asynchronously read and return the content

            return await response.Content.ReadAsStringAsync();

        }

    }

}

In this example:

  • The Main method is marked as async, indicating that it contains asynchronous operations.
  • Inside Main, the await keyword is used to asynchronously wait for the completion of the DownloadContentAsync method.
  • DownloadContentAsync method is also marked as async and asynchronously performs an HTTP GET request using HttpClient. The await keyword is used to asynchronously wait for the completion of the request and reading the response content.
  • The method returns the downloaded content as a string.

Key points to remember about async and await:

  1. async and await are used together to write asynchronous code that looks synchronous.
  2. async methods return a Task, Task<T>, or ValueTask<T>.
  3. await is used to asynchronously wait for the completion of asynchronous operations inside an async method.
  4. async methods allow the calling thread to be released while waiting for asynchronous operations to complete, improving responsiveness and scalability.


Subscribe to get more Posts :