c# - 在 C# 中尽早终止 Roslyn 脚本

标签 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,这是否允许我这样做?也许这是一个更好的选择,想法?

最佳答案

所以答案是这样的:Roslyn 不解释 C#,而是编译它。当您调用 Execute(string) 时,它实际上会立即执行。我将调用放在一个新线程中,并在需要时将其 Abort() 掉,这不是特别优雅,但我不确定还能做什么。

关于c# - 在 C# 中尽早终止 Roslyn 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15982013/

相关文章:

c# - 使用 HelpProvider 类显示帮助,UI 总是在帮助窗口后面

c# - 防止子进程在 C# 中显示 shell 窗口

C# Roslyn 编译 - 在动态编译的代码中使用 Nuget 包 - 编译但在运行时抛出异常(无法加载文件或程序集)

c# - 使用 BeginInvoke 运行委托(delegate)方法

c# - 是否可以在 application_start 中使用 fluent migrator?

.net - 在F#中使用自定义Marshaller

.net - 将 HTML 转换为文本的 DOT NET 代码

php - .NET 中 PHP 的 InfiniteIterator 的等效项是什么?

c# - 如何使用 Roslyn 验证特定 Actor 阵容是否有效

c# - 空传播运算符和扩展方法