Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 中止roslyn脚本执行_C#_.net_Scripting_Roslyn - Fatal编程技术网

C# 中止roslyn脚本执行

C# 中止roslyn脚本执行,c#,.net,scripting,roslyn,C#,.net,Scripting,Roslyn,我想为通过Roslyn执行的脚本实现超时机制,所以我需要一种中止脚本执行的方法。到目前为止,我找到的唯一解决方案是在线程内执行脚本并终止它,但这显然是一个有缺陷的解决方案 有没有更好的方法可以做到这一点?除了启动一个单独的进程并终止它(以避免Thread.Abort())的标准陷阱之外,这是最好的方法。考虑到脚本代码或多或少是任意的,真的没有更好的选择了。只需要脚本执行Thread.Sleep(Timeout.Infinite),脚本引擎就无法恢复它。您能期望脚本配合吗?在大多数情况下是的,但脚

我想为通过Roslyn执行的脚本实现超时机制,所以我需要一种中止脚本执行的方法。到目前为止,我找到的唯一解决方案是在线程内执行脚本并终止它,但这显然是一个有缺陷的解决方案


有没有更好的方法可以做到这一点?

除了启动一个单独的进程并终止它(以避免
Thread.Abort()
)的标准陷阱之外,这是最好的方法。考虑到脚本代码或多或少是任意的,真的没有更好的选择了。只需要脚本执行
Thread.Sleep(Timeout.Infinite)
,脚本引擎就无法恢复它。

您能期望脚本配合吗?在大多数情况下是的,但脚本将在服务器上执行,因此我希望对编写糟糕的脚本提供保护。我不希望应用程序挂起,因为有人意外地编写了一个无限while循环。