According to an article in MSDN Magazine,這是「儘可能使用ConfigureAwait(false)
」的最佳做法。此外,它指出:「如果您可以在某個方法的某個位置使用ConfigureAwait
,那麼我建議您在該方法之後的每個等待中都使用它。」 Stephen Cleary,該文章的作者,states on his blog,即「在您的'庫'異步方法中,儘可能使用ConfigureAwait(false)[強調添加]。」爲整個項目/ dll設置ConfigureAwait(false)
鑑於大多數或所有我在一個庫項目await
聲明,是爲了得到廣泛的應用應該有.ConfigureAwait(false)
的是有可能做一些事情/更改設置,使之讓我的項目中等待的默認行爲/ dll是不是繼續捕獲的上下文?也就是說,我可以省略所有對.ConfigureAwait(false)
的呼叫,而是隻在需要保留上下文時才添加.ConfigureAwait(
true
)
。
如果有一個屬性我們可以應用於指定ConfigureAwait默認值的類或函數,那肯定會很有用。 –
可能很適合在任何測試框架中測試ConfigAwait(false)。任何人都知道,如果這種功能存在於任何框架中。 –
@AbdulSaboor:現在有些代碼分析器可以強制你總是使用'ConfigureAwait'('true'或'false')來明確它。我個人不會使用它們,但我可以看到他們的好處,特別是在大型團隊中。 –