我正在使用維護與遠程服務器的TCP連接並管理通信協議的第三方庫。有時它會失去連接,所以我有一個線程監視連接狀態並嘗試重新連接。通常它可以重新連接。AppDomain是一個包裝壞的第三方庫的好方法嗎?
問題是有時調用Connect()永遠不會返回。我重新啓動它將會工作的過程,所以我認爲庫中發生了一些愚蠢的事情,無論是死鎖還是某個靜態變量被置於一個奇怪的狀態。我對代碼進行了反編譯,但它有點「創造性」,可以理解。
我需要以某種方式編寫此文件,以便我不必因此第三方庫而重新啓動進程。圖書館本身有2個回調Action{T}
。在自己的應用程序域中運行庫是一個不錯的選擇?這樣,如果連接斷開並且不會重新啓動,我可以殺死appdomain並啓動一個新的。我應該考慮什麼?
+1 - 保護自己免受不良第三方代碼的唯一方式是代理過程。 –