[英]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.