我用下面的代码片段try 了一个非常简单的Microsoft.CodeAnalysis.CSharp.Scripting
测试:
var code = @"
var myList = new List<string>();
Parallel.For(0, 300, i =>
{
myList.Add("""" + i);
});
return myList;";
var scrOptions = ScriptOptions.Default
.WithReferences("System", "System.Threading", "ScriptEngineTest")
.WithImports("System", "System.Threading.Tasks", "System.Collections.Generic")
.WithLanguageVersion(LanguageVersion.Latest);
var script = CSharpScript.Create<List<string>>(code, scrOptions);
script.Compile();
var myList = (await script.RunAsync()).ReturnValue;
代码可以很好地执行,但不会等到Paralell.For完成-我的返回列表有不同的计数,但不是全部300个项目.
这是一个错误,或者可能不是真正支持的?
提前THX