【发布时间】:2014-06-18 22:59:33
【问题描述】:
我有这个纯粹同步的库。它公开了同步方法,我有客户使用它。
我将底层实现更改为异步,并为想要使用它的人公开了异步方法。但是现在我有很多重复的代码。异步代码似乎表现更好。我希望现有客户能够利用它,并且我想消除代码重复。
是否有任何安全的方法来保持同步签名并调用异步实现?
我特别害怕调用 .Result 和 .Wait 时出现死锁。
【问题讨论】:
-
你真的应该这样做,如果你这样做,你最终会降低同步性能。最好的方法是对同步 API 调用使用完全同步路径,对异步调用使用完全异步路径。沿着路径重构不依赖同步或异步的代码,并让两条路径都调用函数。
标签: c# .net asynchronous async-await deadlock