加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 从任务返回类型的非async方法返回什么?

发布时间:2020-12-15 06:48:14 所属栏目:百科 来源:网络整理
导读:假设我有一个不是异步的方法,但是返回一个任务(因为定义是来自也用于异步实现的接口) public Task DoWorkAsync(Guid id){ // do the work return ...;} 什么是最好的对象返回?我目前的选择: return Task.Yield();return Task.FromResultobject(null);// an
假设我有一个不是异步的方法,但是返回一个任务(因为定义是来自也用于异步实现的接口)
public Task DoWorkAsync(Guid id)
{
     // do the work

     return ...;
}

什么是最好的对象返回?我目前的选择:

return Task.Yield();
return Task.FromResult<object>(null);

// any of the other but cached in a static field and reused.

解决方法

你不能返回Task.Yield(),它不是一个任务,而是用于等待的YieldAwaitable,它实际上引入了异步(我发布了大约 more details here).

为此,我使用Task.FromResult(Type.Missing).也许,最有效的,尽管没有文档的选项是Task.Delay(0),it returns a static completed task.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读