0

Jurassic スクリプト エンジンを実装していますが、スクリプトにかかる時間を制限するにはどうすればよいですか?

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

1 に答える 1

2

Jurassic には、スクリプトの実行時間を制限する方法が組み込まれていません。Jurassic は JavaScript メソッドを IL コードにコンパイルするため、パフォーマンスに影響を与えずにタイムアウト機能を提供する簡単な方法はありません。

ただし、スクリプトを実行するスレッドでThread.Abort()a を発生させるために使用することは可能です。ThreadAbortException1 つの可能性は、新しいスレッドで実行し、特定の時間後に新しいスレッドが完了しない場合に現在のスレッドScriptEngine.Execute()を呼び出すことです。thread.Abort()

ソース

ドキュメントを読むと、これを行う方法についての提案がありますが、少し長くて複雑です。

于 2016-09-12T21:16:42.880 に答える