等Task.CompletedTask干嘛?

🏷️ 365Bet登陆 📅 2025-07-05 17:14:50 👤 admin 👀 2430 ❤️ 818
等Task.CompletedTask干嘛?

它的存在是为了使后期更容易实现异步代码调用,而不必更改签名,从而避免必须重构调用代码。

虽然搭建的示例代码是同步的,但Template Studio是专门围绕异步数据访问层设计的,您可以通过修改生成的方法的主体来实现自己的数据访问。

如果没有实现异步实现,整个模板化应用程序将有重大的代码更改,对于新开发人员来说,这将是一个非常陡峭的学习曲线,模板的要点是以最少的努力或经验启动和运行!

另一种选择是从方法签名和该行中删除async关键字

代码语言:javascript运行复制return Task.FromResult>(data); 例如,当您由于接口而需要返回一个可等待的Task时,您可以看到这种构造,而实现没有异步工作要做。

然而,在这种情况下,由于它是一个模板,他们希望人们用await FetchDataFromDatabaseAsync();之类的东西替换await Task.Completed。由于async关键字已经存在,它最大限度地减少了实现您自己的异步调用所需的更改。

不管怎样,如果没有这个await构造,你可以这样做:

代码语言:javascript运行复制public class SampleModelService

{

public Task> GetDataAsync()

{

var data = new List();

data.Add(new SampleModel

{

Title = "Lorem ipsum dolor sit 1",

Description = "Lorem ipsum dolor sit amet",

Symbol = Symbol.Globe

});

data.Add(new SampleModel

{

Title = "Lorem ipsum dolor sit 2",

Description = "Lorem ipsum dolor sit amet",

Symbol = Symbol.MusicInfo

});

return Task.FromResult>(data);

}

}如果根本不需要返回一个Task (您没有任何异步代码),那么就完全删除它。(但随后您必须重构调用此方法的代码)

回顾这段代码,我怀疑有人会在以后的开发过程中调用异步方法,并且已经预料到,通过指定此方法返回Task,就会调用异步方法。

相关推荐

100人民币等于多少美元?
365bet足球在线

100人民币等于多少美元?

📅 07-01 👀 925
为什么?脉脉APP注销会消灭所有数据?
365Bet登陆

为什么?脉脉APP注销会消灭所有数据?

📅 07-05 👀 4270
勃金v8怎么样 勃金v8喷剂能延时吗
365bet足球在线

勃金v8怎么样 勃金v8喷剂能延时吗

📅 07-05 👀 985