Я использую стороннюю библиотеку, которая поддерживает TCP-соединение с удаленным сервером и управляет протоколом связи. Иногда он теряет соединение, поэтому у меня есть поток, который отслеживает состояние соединения и пытается восстановить соединение. Обычно это может восстановить.
Проблема в том, что иногда вызовы Connect () никогда не возвращаются. Я перезапускаю процесс, он будет работать, поэтому я думаю, что в библиотеке происходит что-то глупое, либо тупик, либо какая-то статическая переменная переводится в странное состояние. Я декомпилировал код, но он слишком «креативный», чтобы его можно было понять.
Мне нужно написать это так, чтобы мне никогда не приходилось перезапускать процесс из-за этой сторонней библиотеки. Сама библиотека имеет 2 обратных вызова Action{T}
. Является ли запуск библиотеки внутри собственного домена приложения хорошим выбором? Таким образом, если соединение обрывается и не перезагружается, я могу убить домен приложения и запустить новый. Какие соображения я должен сделать?