我正在加载并调用类似这样的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,那会允许我这样做吗?也许这是一个更好的选择整体,想法?
答案 0 :(得分:1)
所以答案是这样的:Roslyn不解释C#,它编译它。当你致电Execute(string)
时,它实际上就是在那里和那里执行它。我把这个电话放在一个新线程中,当我需要时,Abort()编辑它,这不是特别优雅,但我不知道还能做什么。