在我们的应用程序中,我们有一个插件系统,它以插件的形式提供编译器,专门为我们的软件编写。插件是汇编文件,使用MEF导入。然后,用户可以选择编译器,并使用它来编译一段源代码。
如果系统中添加了错误的插件,则会出现问题。执行时,它可能会挂起整个服务,需要完全重启。我正在寻找一种方法来在一定的超时后停止执行编译器,而不需要插件中的TaskCancellation处理,因为你永远无法确定它是否会正确实现,如果有的话。当然,我还需要确保在中止后进行适当的清理,因为如果不这样做,也可能导致系统崩溃或变慢。
我确实理解强制终止托管代码可能会导致很多问题,这就是我要求一个好方法的原因。