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

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

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

1 ответ

Решение

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

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

Источник

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

Другие вопросы по тегам