Tôi đang thực hiện một phương thức Task<Result> StartSomeTask()
và tình cờ biết kết quả đã có trước khi phương thức được gọi. Làm cách nào để tạo một Tác vụ <T> đã hoàn thành?
Đây là những gì tôi đang làm:
private readonly Result theResult = new Result();
public override Task<Result> StartSomeTask()
{
var task = new Task<Result>(() => theResult);
task.RunSynchronously(CurrentThreadTaskScheduler.CurrentThread);
return task;
}
Có một giải pháp tốt hơn?
ValueTask
các nhiệm vụ đã hoàn thành (nghĩa là đối với các giá trị bạn đã có để mã về cơ bản là đồng bộ), điều này sẽ giúp bạn tiết kiệm một khoản phân bổ.