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

c# – 返回任务的两个方法之间的差异

发布时间:2020-12-15 23:34:14 所属栏目:百科 来源:网络整理
导读:参见英文答案 What is the purpose of “return await” in C#?????????????????????????????????????7个 这两种方法之间的语义差异是什么? public Task DoSomething() { return Task.Run(() = MyFunction()); } public async Task DoSomethingAsync() { aw
参见英文答案 > What is the purpose of “return await” in C#?????????????????????????????????????7个
这两种方法之间的语义差异是什么?

public Task DoSomething()
    {
        return Task.Run(() => MyFunction());
    }

    public async Task DoSomethingAsync()
    {
        await Task.Run(() => MyFunction());
    }

有什么我应该考虑在一个或另一个之间做出选择吗?

解决方法

实际差异是这样的:

>第一种方法将调用Task.Run并返回结果任务
>第二种方法将转换为异步状态机,它将调用Task.Run,??然后排队延续,当此任务完成时,将继续执行您的方法

就“我应该选择哪一个”而言,这是我使用的一般准则:

If all your method is going to do in relation to tasks is to return them then do not use async/await
If,instead,you need to “wait for” a task to complete,then do more stuff,then use async/await.

我相信这有例外,但我还没有找到.

所以在这两种方法中,选择第一种方法.

(编辑:李大同)

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

    推荐文章
      热点阅读