.NET Framework Async Tutorial

What Is Asynchronous Programming?

Asynchronous programming enables a method to start an operation that may take a long time to complete—such as I/O, network calls, or CPU‑bound work—without blocking the calling thread. This keeps your UI responsive and improves scalability of server applications.

Benefits

  • Responsive user interfaces
  • Higher throughput on web servers
  • Better use of system resources
  • Cleaner code with async/await

Simple Example

The code below demonstrates an asynchronous method that simulates a web request.

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

public class AsyncDemo
{
    public static async Task GetGoogleHomePageAsync()
    {
        using var client = new HttpClient();
        // Await the asynchronous GetStringAsync call.
        string result = await client.GetStringAsync("https://www.google.com");
        return result.Substring(0, 100); // Return first 100 chars
    }

    public static async Task Main()
    {
        string snippet = await GetGoogleHomePageAsync();
        Console.WriteLine(snippet);
    }
}

Next Steps

Continue with the Async Patterns tutorial to learn about parallelism, cancellation tokens, and error handling.