所以,如果我等待一个函数,我有一些选择:
var retVal = await someAwaitableFunction();
continuation code...
或
var retVal = await someAwaitableFunction().ConfigureAwait(false);
continuation code...
后者,正如我所理解的那样,"呃,当继续发生"时,我真的不需要你用相同的syncContext重新输入。前者确保了它。
那很好 - 只是在我看来你想要重用同步上下文的情况很少。似乎只是WPF - 你想要保证UI线程/上下文是继续你的那个,所以你可以使用UI元素。
还有其他情况吗?我在实例中并没有真正见过,而且一直在讨论的是......我知道的UI线程情况。
提前致谢!
答案 0 :(得分:0)
除非你真的知道自己在做什么,否则不要试图搞乱异步。所有同步上下文的东西都有很多难以找到的问题,如果你遇到麻烦,很难调试。
即使这不是问题的直接答案,我建议你不要使用所有高级功能,除非你真的需要它们,你也必须有充分的理由。所以你只需要使用普通等待,99%都应该没问题,而且除非你正在做一些必须非常快的真正核心功能,否则性能还是不错的。