2016-10-04 3 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

Смежные вопросы