如何在C#中使用out参数使用异步等待

时间:2019-01-11 02:51:28

标签: c# asynchronous async-await

我们如何在C#中安全使用out-await参数。

例如

async public void someMethod(){
     await someOtherMethod (out string outputFromSomeOtherMethod);
     .......
     .....

} 

1 个答案:

答案 0 :(得分:3)

简而言之,您不会(也不能),我们使用return

另外,当您考虑它时,它没有任何意义,它会在喜欢时完成任务,如果可以的话,您将迫使它等待out参数

public async Task<SomeResult> someOtherMethod() { .. }

...

var myAwesomeResult = await someOtherMethod();

此外,您冷使用delegatefunc<T,U>Action<T>作为参数

public async Task someOtherMethod(Action<bool> someResult)
{
   await somestuff;
   someResult(true);
}

...

await someOtherMethod(b => YayDoSomethingElse(b));

Daniel A. White评论中,如果您需要轻松访问多种返回类型,则可以返回ValueTuple

public async Task<(int someValue,string someOtherValue)> someOtherMethod() {.. }