中止CSharpScript.RunAsync

时间:2019-06-26 12:31:02

标签: c# async-await roslyn-code-analysis

对于我们的应用程序,我们正在使用新的Roslyn C#脚本功能。除了一件小事情,这很好用。我们希望精确地能够强制停止执行。

var script = ...; // Generate script
await script.RunAsync(globals, cancellationToken);

首先,我想提及的是,cancelToken对于此无用,因为它仅允许在代码构建期间进行取消。

所以Task本身是不可行的,我想到了将这些东西包装到Thread中的想法,随时可以中止。

var thread = new Thread(async () =>  await script.RunAsync(globals, cancellationToken));

thread.Start();
//...
thread.Abort();

由于它不起作用,我发现一段时间后,我将中止名为RunAsync方法的线程,而不是正在运行创建的Task的线程。...

所以,现在我没了主意。也许我遗漏了一点,而且很容易做到。

谢谢。

0 个答案:

没有答案