简体   繁体   English

返回任务时我不应该使用等待/异步吗?

Should I not use await/async when returning Task?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文简体   中文繁体   英文版本 版本,有任何建议请联系yoyou2525@163.com。

When I want to create a method returning Task with I/O bound work I usually use something like this:当我想创建一个返回具有 I/O 绑定工作的 Task 的方法时,我通常使用这样的东西:

public async Task<ProductModel> GetProduct(string name, CancellationToken ct = default)
{
    //...
    return await GetAsync<ProductModel>(request, ct);
}

And call it like this:并这样称呼它:

var product = await GetProduct("some product", ct);

But I came across some function definition just like above but without the await/async :但是我遇到了一些 function 定义,就像上面一样,但没有await/async

public Task<ProductModel> GetProduct(string name, CancellationToken ct = default)
{
    //...
    return GetAsync<ProductModel>(request, ct);
}

With a similar call as mine.和我的电话类似。

My question is, is this latter definition safe, can I just suppress the await/async in the function returning a Task ?我的问题是,后一种定义是否安全,我可以在 function 返回一个Task中抑制await/async吗?

And if so, are there any benefits or drawbacks?如果是这样,有什么好处或缺点吗?

问题暂未有回复.您可以查看右边的相关问题.
1 我何时应该使用async / await而不是什么时候? - When should i use async/await and when not?

我是否应该从现在开始使用async / await(c#5)每当我不需要方法的结果(Task &lt;&gt;)或者我必须触发一次性方法(void)? 当我在C#4中使用Task类并将工作推送到Backgroud线程时,我是否应该在所有情况下使用它? 我应该只在我使用异步.Net F ...

2 我何时应该使用Async.AwaitIAsyncResult而不是Async.AwaitTask来等待任务? - When should I use Async.AwaitIAsyncResult instead of Async.AwaitTask to await a Task?

我希望在使用以下调用保存更改时等待Entity Framework Core返回的Task&lt;int&gt; : myDbContext.SaveChangesAsync true 我找到了至少3种不同的方法来实现这一点,但我不确定哪一个是最好的,因为我不关心Task&lt;int&g ...

3 我什么时候应该在 Python 中使用 async/await? - When should i use async/await in Python?

元上下文: 我正在使用aiohttp构建一个 api。 由于它是一个异步框架,我必须使用 async 来定义处理程序。 例子: 代码上下文: 在开发过程中,我发现自己遇到了嵌套函数调用的情况,如下所示: 当我考虑性能时,我不知道是否应该将这些嵌套函数也全部异步执行。 例子: 问题: ...

4 不直接返回任务时最适当地使用Async / Await吗? - Most Appropriate Use Of Async/Await When Not Returning The Task Directly?

我在代码中经常使用async等待,但是我发现我可能做得不尽如人意。 我正在寻找我对处理异步/等待的最佳方法的理解的确认,这些方法可以执行多种操作并且不会直接返回任务的结果。 当我只想直接返回任务结果时,通常会这样做。 但是,当我想在返回之前对任务的值做一些事情时,我习惯了异步 ...

7 当你使用async-await时,我在哪里定义Task以及我等待它的位置是否重要? - When you use async-await, does it matter where I define the Task and where I await it?

我正在看示例方法 从How和何时使用`async`和`await` ,我有一个关于它是如何工作的问题。 所以,我想说我可以添加一些“独立工作”。 获得第一百万个素数是独立的工作,所以我希望它是夹在Task&lt;int&gt; longRunningTask = LongR ...

8 使用异步等待或任务? - Use async await or task?

您已经构建了一个复杂的计算算法。 这需要相当长的时间才能完成,并且您希望确保应用程序保持响应。 你是做什么? A.使用async / await。 B.同步运行代码。 C.使用Task.Run。 D.使用BackgroundWorker。 答案是C. ...

10 我应该在控制器中使用 async/await 吗? - Should I use async/await in my controller?

我在 youtube 上观看了 Les Jackson 的一些关于如何创建 .net 核心 api 的视频。 Les 将这种方法用于他的控制器中的一个方法 但是,我刚刚阅读了使用这种方法的书中的一篇文章 根据我的想法,使用“异步”声明的第二种方法是一种矫枉过正吗? 第一种方法在获得结果之前 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM