2017-02-28 299 views
0

条件语句中await的正确语法是什么?条件语句中'await'的正确语法

if(!await MyFunctionAsync().ConfigureAwait(false)) 
{ 
    ... 
} 

还是

if(!(await MyFunctionAsync().ConfigureAwait(false))) 
{ 
    ... 
} 

我想问的原因是因为它看起来就像我现在这样!await而不是!(await MyFunctionAsync().ConfigureAwait(false))和我关心的是无效的语法..

还是只是美容和所有的开发?

+1

漂亮的化妆品。我认为最简单的读法是'var gotSomething = await MyFunctionAsync()。ConfigureAwait(false);如果(!gotSomething){...}'。 –

+1

yess,它只是化妆 – levent

+1

当你试图编译两个你得到任何语法错误?由于答案是“否”,因此您的问题显然是关于基于“基于意见”的偏好...如果您想要,您可以在C#中查找有关操作优先级的问题以用作重复目标。 –

回答

2

在你的情况下,它是化妆品。

此外,ConfigureAwait(bool)调用确实有编译时检查,以确保它在await语句后正确使用,这应该让您确信您正确使用它(至少在语法方面)。

-4

我不能完全确定你试图用ConfigureAwait()做什么,但正确的语法如下:

async void Foo() { 
    var result = await YourBoolFunctionAsync(); 

    if (!result) { 
     // do something 
    } 
} 
+0

ConfigureAwait(布尔)是一个有用的操作,可以防止跨线程保留(和重新水合)同步上下文引起的性能开销。理解编写优化的异步代码是一个重要的概念。 – Technetium

+1

啊,谢谢你的信息。我不知道。猜猜我稍后会做一些阅读! – SimonC