在C#早期终止Roslyn脚本

时间:2013-04-12 22:43:12

标签: c# .net roslyn

我正在加载并调用类似这样的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,那会允许我这样做吗?也许这是一个更好的选择整体,想法?

1 个答案:

答案 0 :(得分:1)

所以答案是这样的:Roslyn不解释C#,它编译它。当你致电Execute(string)时,它实际上就是在那里和那里执行它。我把这个电话放在一个新线程中,当我需要时,Abort()编辑它,这不是特别优雅,但我不知道还能做什么。