.net core 关于F#项目中服务器GC的警告

.net core 关于F#项目中服务器GC的警告,.net-core,f#,.net Core,F#,我正在做我的第一个F#项目,我正在试验Hopac图书馆 我在Mac上使用的是dotnet 3.1.300版。我已使用以下命令初始化了我的项目: dotnet new console --language F# dotnet add package Hopac 在使用Hopac库编写之后,按以下方式运行程序: dotnet run 程序的运行时行为符合我的预期,但我得到以下警告: 警告:您正在使用单线程工作站垃圾回收,这意味着并行程序无法扩展。请将程序配置为使用服务器垃圾回收 根据SO中几个线

我正在做我的第一个F#项目,我正在试验Hopac图书馆

我在Mac上使用的是dotnet 3.1.300版。我已使用以下命令初始化了我的项目:

dotnet new console --language F#
dotnet add package Hopac
在使用Hopac库编写之后,按以下方式运行程序:

dotnet run
程序的运行时行为符合我的预期,但我得到以下警告:

警告:您正在使用单线程工作站垃圾回收,这意味着并行程序无法扩展。请将程序配置为使用服务器垃圾回收

根据SO中几个线程的建议,添加以下子句:

<ServerGarbageCollection>true</ServerGarbageCollection>
true
我在fsproj配置中尝试了以下操作:

<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
  <ServerGarbageCollection>true</ServerGarbageCollection>
</PropertyGroup>


 <PropertyGroup>
   <OutputType>Exe</OutputType>
   <TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>

 <ItemGroup>
    <Compile Include="Program.fs" />
 </ItemGroup>

 <ItemGroup>
  <PackageReference Include="Hopac" Version="0.4.1" />
 </ItemGroup>

</Project>

真的
Exe
netcoreapp3.1
此外,我还尝试:

<Project Sdk="Microsoft.NET.Sdk">

 <PropertyGroup>
   <ServerGarbageCollection>true</ServerGarbageCollection>
   <OutputType>Exe</OutputType>
   <TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>

 <ItemGroup>
    <Compile Include="Program.fs" />
 </ItemGroup>

 <ItemGroup>
  <PackageReference Include="Hopac" Version="0.4.1" />
 </ItemGroup>

</Project>

真的
Exe
netcoreapp3.1
但同样的警告依然存在。我是.NET配置文件的新手,所以我是否犯了一些明显的错误?谢谢在项目的根目录下创建runtimeconfig.template.json

{
      "configProperties": {
        "System.GC.Server": true
     }

}
要验证是否正常工作,请在代码打印中执行以下操作:

printfn "%A" System.Runtime.GCSettings.IsServerGC
这应该是真的


由于某些原因,SDK版本的设置不起作用。

我有理由相信您也可以在代码中进行设置。@BentTranberg您知道如何在代码中进行设置吗?