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:

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:


Nguồn: Cancel async tasks after a period of time (C#)


Hủy các tác vụ không đồng bộ sau một khoảng thời gian (C #)

Nhận xét

Bài đăng phổ biến