Asynchronous Programming - #5 Hủy các task bất đồng bộ sau một khoảng thời gian
Bạn có thể hủy một hoạt động bất đồng bộ sau một khoảng thời gian bằng việc sử dụng phương thức CancellationTokenSource.CancelAfter nếu bạn không muốn chờ hoạt động hoàn thành. Phương thức này được lên lịch việc hủy bỏ các task liên quan không hoàn thành trong khoảng thời gian được chỉ định bởi biểu thức CancelAfter
.
Ví dụ thêm vào code mà mình đã làm ở bài Cancel a list of task (C#) để tải một danh sách website và hiển thị độ dài nội dụng của mỗi cái.
Nội dung bài hôm nay:
- Cập nhật .NET console application đã có trước đó.
- Lên lịch trình hủy bỏ task
Điều kiện tiên quyết
Trong bài hôm nay yêu cầu những thứ sau:
- Bạn sẽ phải tạo một ứng dụng trong bài Cancel a list of tasks (C#)
- .NET 5.0 hoặc SDk mới hơn
- Môi trường lập trình (IDE):
Cập nhật entry point
Thay thế phương thức Main
hiện tại bằng những dòng code dưới đây:
Phương thức Main
đã cập nhật có viết một vài hướng dẫn ra ngoài màn hình console. Với try catch, gọi CancellationTokenSource.CancelAfter(Int32) lên lịch hủy. Nó sẽ ra dấu hiệu việc hủy bỏ sau một khoảng thời gian.
Kế đến, phương thức SumPageSizeAsync
được chờ. Nếu quá trình xử lý của tất cả URL diễn ra nhanh hơn việc hủy theo lịch, ứng dụng kết thúc. Tuy nhiên, nếu lên lịch hủy được gọi trước khi các URL xử lý xong, TaskCanceledExpection sẽ bị quăng ra.
Ví dụ output của ứng dụng
Hoàn thành ví dụ
Code dưới đây là toàn bộ nội dung của file Program.cs:

Hủy các tác vụ không đồng bộ sau một khoảng thời gian (C #)
Nhận xét
Đăng nhận xét