【发布时间】:2022-10-08 04:17:29
【问题描述】:
我现在正在使用这个:https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.process?view=net-6.0 但我无法限制进程内存和 CPU 使用率
public static void Launch(string[] args)
{
// make sure installPath is in double perentheses
string steamPath = config["steamPath"].ToString();
string arg = "";
foreach (string s in args){arg += $"{s} ";}
Process ExternalProcess = new Process();
ExternalProcess.StartInfo.FileName = steamPath;
ExternalProcess.StartInfo.Arguments = arg;
ExternalProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
ExternalProcess.Start();
ExternalProcess.WaitForExit();
ExternalProcess.Close();
}
【问题讨论】:
-
我也发现了这个,但我无法让它工作:github.com/alonf/JobObjectWrapper
-
查看Process.PriorityClass 属性。
-
如果设置内存使用限制至关重要,您可以查看github.com/lowleveldesign/process-governor。它是一个命令行工具,因此它应该相对容易被您的 C# 程序执行。它还允许限制 CPU 使用率,因此可能是您可能正在寻找的一站式解决方案......
-
所以这可能会起作用我想把它放在代码中,而不是我的程序依赖的程序
-
哦,好的,我会先尝试实现它:)
标签: c#