【问题标题】:How to limit use of memory and processor in external process c#如何限制外部进程c#中内存和处理器的使用
【发布时间】: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#


【解决方案1】:

如果设置内存使用限制至关重要,您可以查看 github.com/lowleveldesign/process-governor。它是一个命令行工具,因此它应该相对容易被您的 C# 程序执行。它还允许限制 CPU 使用率,因此可能是您可能正在寻找的一站式解决方案...... – MySkullCaveIsADarkPlace

【讨论】:

    猜你喜欢
    • 2020-02-29
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-27
    • 2013-02-13
    • 2019-05-13
    • 2011-02-22
    相关资源
    最近更新 更多