Lập trình bất đồng bộ với async và await trong C#
Trong bài học này, bạn sẽ viết code bất đồng bộ với async và await để chờ một tác vụ mà không chặn chương trình.
Giới thiệu
Khi chương trình phải chờ những thao tác mất thời gian như đọc file, gọi API hay đợi bộ hẹn giờ, lập trình bất đồng bộ (asynchronous) giúp luồng xử lý không bị chặn trong lúc chờ. C# cung cấp hai từ khóa async và await để viết code bất đồng bộ dễ đọc như code tuần tự thông thường.
Phương thức Main được khai báo static async Task. Câu lệnh await Task.Delay(20) tạm dừng phương thức trong 20 mili giây mà không chặn luồng đang chạy. Khi tác vụ chờ hoàn tất, phương thức tiếp tục chạy từ đúng vị trí đó và in ra Async work complete.
Ví dụ C# chạy được
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
await Task.Delay(20);
Console.WriteLine("Async work complete");
}
}
Async work completeLuyện tập với trình gỡ lỗi
Luyện tập với thử thách
Áp dụng kiến thức của bài học này để giải một bài toán thực tế. Mỗi thử thách chạy ngay trên trình duyệt, có kiểm thử tức thì và AI nhận xét.
Tất cả thử thách