2016-10-04 79 views
0

衆所周知,阻塞異步代碼是一個壞主意。如這裏所示和許多其他地方。 http://blog.stephencleary.com/2012/07/dont-block-on-async-code.html有沒有辦法隔離阻塞異步代碼的庫

但是,如果使用這樣做的第三方庫,有沒有辦法通過提供適當的同步上下文或另一個修復程序來隔離問題,而無需重新編寫庫。

在這種情況下的罪犯是:https://github.com/launchdarkly/.net-client/blob/master/src/LaunchDarkly.Client/FeatureRequestor.cs它似乎是造成我們一些問題。

+0

有些問題=死鎖? – Evk

+0

您可以提交該項目的拉取請求嗎? – Gusdor

+0

這是假設是我們正在陷入僵局,但很難驗證 –

回答

1

我的建議是從工作者線程調用庫。

這將爲庫提供默認的同步上下文,並不會再編組爲單個線程。

這不是一個推薦的解決方法,但它應該做的伎倆。

+0

你的意思是用Task.Run包裝任何或某些呼叫? –

+0

@EsbenSkovPedersen是的。 – Gusdor