最近我使用了一个外部 dll 库,对此我没有任何影响。在某些特殊情况下,这个第三方dll的一个方法是阻塞的,永不返回。
我试图通过在新的 AppDomain 中执行此方法来解决此问题。自定义超时后,我想卸载 AppDomain 并杀死所有这些废话;)
不幸的是,它不起作用 - 正如有人所期望的那样。
一段时间后,它会抛出 CannotUnloadAppDomainException,因为阻塞方法不允许优雅地中止线程。
我依赖于使用这个库,而且似乎不会很快有更新。
所以我可以解决这个问题,即使它不是最佳实践?任何不好的黑客表示赞赏:)