Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在侏罗纪中,如何限制脚本运行时间?_Javascript_C#_Jurassic - Fatal编程技术网

Javascript 在侏罗纪中,如何限制脚本运行时间?

Javascript 在侏罗纪中,如何限制脚本运行时间?,javascript,c#,jurassic,Javascript,C#,Jurassic,我正在实现Jurassic脚本引擎,如何限制脚本所需的时间 string ExcutingFunction = " for(var i=0;i<1000000;i++){ i%2; } "; ScriptEngine ScrptingEngine = new ScriptEngine(); ScrptingEngine.Execute(ExcutingFunction); string ExcutingFunction=“for(var i=0;i Jurass

我正在实现Jurassic脚本引擎,如何限制脚本所需的时间

    string ExcutingFunction = " for(var i=0;i<1000000;i++){ i%2; } ";
    ScriptEngine  ScrptingEngine = new ScriptEngine();
    ScrptingEngine.Execute(ExcutingFunction);
string ExcutingFunction=“for(var i=0;i
Jurassic没有限制脚本执行时间的内置方法。因为Jurassic将JavaScript方法编译成IL代码,所以在不影响性能的情况下提供超时功能是不容易的

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

如果您通读了文档,他们确实对如何执行此操作提出了建议,但这有点冗长和复杂

Jurassic没有限制脚本执行时间的内置方法。因为Jurassic将JavaScript方法编译成IL代码,所以在不影响性能的情况下提供超时功能是不容易的

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


如果你仔细阅读文档,他们确实有一些建议如何做,但这有点冗长和复杂。

你说的限制脚本需要多长时间是什么意思?如果脚本需要很长时间,比如超时?如果脚本需要很长时间,比如停止脚本。你说的限制脚本需要多长时间是什么意思?如果脚本需要很长时间,比如超时?比如如果需要的时间太长,请停止脚本