标签: c# .net scripting roslyn
我想通过Roslyn实现脚本的超时机制,所以我需要一种方法来中止脚本执行。到目前为止我找到的唯一解决方案是在一个线程内执行脚本并终止它,但它显然是一个有缺陷的解决方案。
有更好的方法吗?
答案 0 :(得分:3)
除了启动一个单独的流程并将其删除(以避免Thread.Abort()的标准陷阱)之外,这是您可以做的最好的。鉴于脚本代码可能或多或少是任意的,实际上不可能是更好的选择。只需要你的脚本Thread.Sleep(Timeout.Infinite),脚本引擎就无法恢复它。
Thread.Abort()
Thread.Sleep(Timeout.Infinite)