繁体   English   中英

了解以下async-await调用之间的区别

[英]Understanding the difference between the following async-await calls

这些调用会有类似的行为吗? 因为它们的行为与async-await运行的方式相同 - 可以或不可以在相同的原始线程上下文中运行吗? 或者第一个确保执行发生在不同的线程上下文中?

第一种方式 -

Task task = SomeAsyncTask();
await task();

第二种方式 -

await SomeAsyncTask();

如果Task task = SomeAsyncTask();之间有代码Task task = SomeAsyncTask(); await task(); ,您的任务将开始执行异步代码,您当前的线程将同时执行该代码。

否则,他们是平等的..

Task task = SomeAsyncTask();
//Codes executed on current thread while SomeAsyncTask is running
await task();

所有异步方法都是同步启动的

那是:

await SomeAsyncTask();

与以下内容完全相同:

var task = SomeAsyncTask();
await task;

在这两种情况下, SomeAsyncTask都将运行,直到它完成或命中异步await ,此时它返回一个任务。 然后,该任务由调用方法await

暂无
暂无

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

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