![]() |
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 16:17 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