在Jurassic中,如何限制脚本运行时间?

时间:2016-09-12 21:08:53

标签: javascript c# jurassic

我正在实施侏罗纪脚本引擎,如何限制脚本需要多长时间?

    string ExcutingFunction = " for(var i=0;i<1000000;i++){ i%2; } ";
    ScriptEngine  ScrptingEngine = new ScriptEngine();
    ScrptingEngine.Execute(ExcutingFunction);

1 个答案:

答案 0 :(得分:2)

  

侏罗纪没有内置的方法来限制脚本的执行时间。因为Jurassic将JavaScript方法编译成IL代码,所以没有简单的方法来提供超时功能而不影响性能。

     

但是,可以使用Thread.Abort()在执行脚本的线程中引发ThreadAbortException。一种可能性是在新线程中运行ScriptEngine.Execute()并在当前线程中调用thread.Abort(),如果新线程在特定时间后没有完成。

Source

如果您仔细阅读文档,他们确实有关于如何执行此操作的建议,但它有点冗长且涉及。