我正在加载和调用一个类似这样的 csx 文件:
BaseScript = new ScriptBase(); // My own type
var session = engine.CreateSession(BaseScript, typeof(ScriptBase));
BaseScript.Session = session;
//...
var script = File.ReadAllText(file);
BaseScript.Session.Execute(script);
此脚本旨在无限期运行,并且基本上有一个 while (true);
在那里。我有办法提前停止吗?
此外,我正在考虑迁移到 Mono.Csharp,这是否允许我这样做?也许这是一个更好的选择,想法?
最佳答案
所以答案是这样的:Roslyn 不解释 C#,而是编译它。当您调用 Execute(string)
时,它实际上会立即执行。我将调用放在一个新线程中,并在需要时将其 Abort() 掉,这不是特别优雅,但我不确定还能做什么。
关于c# - 在 C# 中尽早终止 Roslyn 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15982013/