2016-09-12 6 views
0

Я использую Jurassic engine, как ограничить продолжительность выполнения сценария?В юре, как ограничить время выполнения скрипта?

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

что вы имеете в виду ограничение времени на выполнение сценария? как время, если это займет много времени? – Dispersia

+0

Как остановить скрипт, если он занимает слишком много времени – Bill

ответ

2

Jurassic не имеет встроенный способ ограничить время выполнения сценария. Поскольку Jurassic компилирует JavaScript-методы в IL-код, нет простого способа предоставить тайм-аут, не влияя на производительность.

Однако можно использовать Thread.Abort(), чтобы поднять ThreadAbortException в потоке, выполняющем скрипт. Одна из возможностей - запустить ScriptEngine.Execute() в новом потоке и вызвать thread.Abort() в текущем потоке, если новый поток не завершится через определенное время.

Source

Если вы прочитали документацию, у них есть предложения о том, как это сделать, но это немного длительным и запутанным.

Смежные вопросы