C# 如果异步方法没有';不要等待?

C# 如果异步方法没有';不要等待?,c#,async-await,C#,Async Await,我想知道如果我调用一个不等待asynchronos任务的异步方法,其行为是什么。例如,假设异步方法根据其参数有两个代码路径,其中一个代码路径调用实际需要异步运行的异步方法,而另一个代码路径不需要 当我调用这样一个方法,并假设采用了第二个代码路径时,我的线程是否仍然会被挂起并恢复,或者它是否会像同步方法一样执行 这似乎使我的应用程序中更新主线程上UI元素的部分有所不同 谢谢, Frank该方法将同步执行,就像它是一个非异步方法一样。这似乎与标记为重复的问题有所不同,因此值得注意:这里的主要问题是返

我想知道如果我调用一个不等待asynchronos任务的异步方法,其行为是什么。例如,假设异步方法根据其参数有两个代码路径,其中一个代码路径调用实际需要异步运行的异步方法,而另一个代码路径不需要

当我调用这样一个方法,并假设采用了第二个代码路径时,我的线程是否仍然会被挂起并恢复,或者它是否会像同步方法一样执行

这似乎使我的应用程序中更新主线程上UI元素的部分有所不同

谢谢,
Frank

该方法将同步执行,就像它是一个非异步方法一样。这似乎与标记为重复的问题有所不同,因此值得注意:这里的主要问题是返回类型。如果调用异步方法,则它将返回
任务
任务
。因此,在执行异步函数的其余部分之前,您将立即返回
任务
,就像等待
一样。如果需要获取返回值,则需要对该
任务调用
Wait()
,然后使用
Result
提取基础值,这基本上就是
Wait
为您所做的。@JeremyCaney您不需要调用Wait()对于任务as,访问结果属性将一直等到任务完成。Wait()的意思是当您不关心结果值或者您有一个没有结果值的非泛型任务时。@ckuri:Aha,谢谢您这么说!