【发布时间】:2017-08-23 11:41:34
【问题描述】:
如果异步任务函数没有返回任何内容,我是否需要等待它?这是否会导致以下代码被包装在委托中并在异步任务函数返回后执行?
Task DoSomethingAsync()
{
return Task.Run(() =>
{
// Do something, but doesn't return values.
});
}
void Test()
{
DoSomethingAsync(); // should I await?
// Do other things, totally not related to the async function
Console.WriteLine("aaa");
}
在上面的例子中,如果我在 Test() 中等待 DoSomethingAsync(),这是否会导致以下代码 Console.WriteLine 被包装在委托中,并且仅在异步任务完成时才执行延迟?
【问题讨论】:
-
我认为没有理由这样做。
-
如果你这样调用它,它将同步运行。
-
@dcg 不,不会。它只会在完成之前继续。
-
请记住
async / await在控制台应用程序中的行为不同(无法判断这是真正的控制台应用程序,还是仅用作示例)。
标签: c# asynchronous