![]() |
Multi-Prozessor - einem Prozess eine CPU zuweisen
Es kann durchaus sinnvoll sein, dass ein Prozess von einer bestimmten CPU bearbeitet wird.
Aus ![]() Mit ihm kann man einem bestimmten Prozess eine CPU zuweisen. Für das eigene Programm:
Delphi-Quellcode:
Für ein fremdes Programm (erweitert von Basilikum):
SetProcessAffinityMask(GetCurrentProcess, 1); // 1=CPU0 , 2=CPU1
Delphi-Quellcode:
Dank an die Beiden.
function GetProcessID(Exename: string): DWORD;
var hProcSnap: THandle; pe32: TProcessEntry32; begin result := 0; hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0); if hProcSnap <> INVALID_HANDLE_VALUE then begin pe32.dwSize := SizeOf(ProcessEntry32); if Process32First(hProcSnap, pe32) = true then begin while Process32Next(hProcSnap, pe32) = true do begin if pos(Exename, pe32.szExeFile) <> 0 then result := pe32.th32ProcessID; end; end; CloseHandle(hProcSnap); end; end; function GetProcessHandleFromID(ID: DWORD): THandle; begin result := OpenProcess(PROCESS_SET_INFORMATION, False, ID); end; function SetProcessAffinityMaskByID(ID,Affinity: DWORD): Boolean; var handle: thandle; begin handle := OpenProcess(PROCESS_SET_INFORMATION, False, ID); result:=(handle <> 0) and SetProcessAffinityMask(handle, Affinity); if (handle <> 0) then closehandle(handle); end; procedure TForm1.Button1click(Sender: TObject); begin SetProcessAffinityMaskByID(GetProcessID('SOUNDMAN.EXE'), 1); // 1=CPU0 , 2=CPU1 end; [edit=Chakotay1308]Styleguide. Mfg, Chakotay1308[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz