![]() |
Ein Thread einen bestimmten Prozessorkern zuordnen
Mit diesem Code kann man ein Thread einen bestimmten CPU Core zuweisen.
Delphi-Quellcode:
So könnte ein Aufruf aussehen:
const
THREAD_TERMINATE = $0001; THREAD_SUSPEND_RESUME = $0002; THREAD_GET_CONTEXT = $0008; THREAD_SET_CONTEXT = $0010; THREAD_SET_INFORMATION = $0020; THREAD_QUERY_INFORMATION = $0040; THREAD_SET_THREAD_TOKEN = $0080; THREAD_IMPERSONATE = $0100; THREAD_DIRECT_IMPERSONATION = $0200; THREAD_SET_LIMITED_INFORMATION = $0400; THREAD_QUERY_LIMITED_INFORMATION = $0800; THREAD_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or $03FF; function OpenThread(dwDesiredAccess: DWord; bInheritHandle: Bool; dwThreadId: DWord): DWord; stdcall; external 'kernel32.dll'; function SetThreadAffinityMaskByID(ID, AffinityMask: Cardinal): Boolean; var Handle: THandle; begin Result:=False; Handle:=OpenThread(THREAD_SET_INFORMATION or THREAD_QUERY_INFORMATION, False, ID); if Handle<>0 then begin Result:=SetThreadAffinityMask(Handle, AffinityMask)<>0; CloseHandle(Handle); end; end;
Delphi-Quellcode:
SetThreadAffinityMaskByID(GetCurrentThreadID, 1); // HauptThread auf prozessor core1 setzen
SetThreadAffinityMaskByID(WorkThread.ThreadID, 2); // WorkThread auf prozessor core2 setzen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:08 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