c# - Microsoft.Build.BuildEngine 可以是多线程的吗

标签 c# .net multithreading visual-studio msbuild

我有许多 Visual Studio 解决方案要构建。

Microsoft.Build.BuildEngine 能否用于一次构建多个解决方案(即通过多线程)?

我知道它有一些 STAThread 要求,尽管我一直不太明白这对我的程序意味着什么。

编辑:让我澄清一下。我知道 MSBuild 可以在解决方案中进行项目的多线程构建。我的问题是Microsoft.Build.BuildEngine.Engine是否可以被不同的线程用来构建不同的解决方案/项目。

我尝试在不同的线程中创建单独的引擎,但没有成功。当我尝试在一个线程中使用一个引擎时,它成功了。

Microsoft.Build.BuildEngine .NET 库能否一次构建多个项目/解决方案?

最佳答案

这取决于你在做什么。是的,您可以进行多个并行项目构建(在 VS 中转到工具 -> 选项 -> 项目和解决方案 -> 构建和运行)。如果您正在运行 MSBuild,则可以使用/m[:number] 命令。至于已弃用的 BuildEngine,取而代之的是 Microsoft.Build.Construction/Microsoft.Build.Evaluation/Microsoft.Build.Execution,我相信 BuildParameters.MaxNodeCount 是设置要使用的线程数的原因。虽然我个人建议只运行 msbuild 本身或使用 IDE,但它要简单得多。

关于c# - Microsoft.Build.BuildEngine 可以是多线程的吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15514135/

相关文章:

c# - 创建接受从参数类型(多态参数)派生的任何类型的参数的操作

c++ - 多线程环境中的延迟加载数据

c++ - 启动一个作为该类私有(private)方法的守护线程?

multithreading - 线程还是异步?

Linux 上的 C# 服务器可伸缩性问题

c# - 当用户未在 Blazor 中获得授权时,我想显示带有路由的多个页面

c# - Entity Framework 中有自动关联吗?

css - 如何更改机器人背景颜色

c# - 我可以让 List(T).ForEach() 严格按顺序遍历元素吗?

c# - 以编程方式创建已知维度、类型和长度的数组