Consider this C# code:

4 phương ánCó giải thíchDễ
Đề bài
public class Worker : BackgroundService
{
    protected override Task ExecuteAsync(CancellationToken stoppingToken)
    {
        return Task.CompletedTask;
    }
}

What is ExecuteAsync?

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "The entry point for background execution.". Lớp Worker kế thừa BackgroundService và ghi đè phương thức trừu tượng ExecuteAsync; khi host khởi động, StartAsync của BackgroundService gọi ExecuteAsync và truyền vào stoppingToken, nên đây là điểm vào nơi đặt toàn bộ công việc chạy nền. Trong mẫu này thân hàm trả về Task.CompletedTask nên tác vụ kết thúc ngay, nhưng vai trò của phương thức vẫn là điểm khởi chạy. "The constructor." sai vì hàm khởi tạo có tên trùng tên lớp, Worker, và là nơi nhận dịch vụ được tiêm vào chứ không chứa vòng công việc. "A logging method." sai vì phương thức không ghi log gì; ghi log dùng ILogger được tiêm qua hàm khởi tạo. "A thread initializer." sai vì ExecuteAsync không tạo hay cấu hình luồng nào; nó chỉ là phương thức trả về Task, phần trước await đầu tiên chạy ngay trên luồng gọi StartAsync còn phần sau await chạy tiếp trên luồng của ThreadPool.

Cùng chương 8

Xuất hiện trong 2 bộ đề