相关疑难解决方法(0)

SetProcessAffinityMask - 选择多个处理器?

如何使用SetProcessAffinityMask选择多个逻辑处理器?

在Windows任务管理器中,您可以将此作为示例:

在此输入图像描述

我更新了我的CreateProcess过程来执行此操作:

type
  TProcessPriority = (ptLow         = $00000040,
                      ptBelowNormal = $00004000,
                      ptNormal      = $00000020,
                      ptAboveNormal = $00008000,
                      ptHigh        = $00000080,
                      ptRealtime    = $00000100);

procedure RunProcess(FileName: string; Priority: TProcessPriority);
var
  StartInfo: TStartupInfo;
  ProcInfo: TProcessInformation;
  CmdLine: string;
  Done: Boolean;
begin
  FillChar(StartInfo, SizeOf(TStartupInfo), #0);
  FillChar(ProcInfo, SizeOf(TProcessInformation), #0);
  StartInfo.cb := SizeOf(TStartupInfo);

  CmdLine := FileName;
  UniqueString(CmdLine);
  try
    Done := CreateProcess(nil, PChar(CmdLine), nil, nil, False,
                          CREATE_NEW_PROCESS_GROUP + Integer(Priority),
                          nil, nil, StartInfo, ProcInfo);
    if Done then
    begin
      // Todo: Get actual cpu core count …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-xe

8
推荐指数
2
解决办法
4702
查看次数

标签 统计

delphi ×1

delphi-xe ×1