wenn man wirklich machen will das kein thread etwas anderes machen kann (funktioniert nur mit einem prozessor)
Delphi-Quellcode:
procedure blaa;
asm
// (no other thread can do something, doesnt work in IDE)
// example, do not call sleep
mov ecx, $FFFFFFFF
@@weiter:
dec ecx
test ecx, ecx
jnz @@weiter
end;
procedure TForm1.FormCreate(Sender: TObject);
var tid: cardinal;
begin
tid := CreateThread(
nil,0,@blaa,
nil,CREATE_SUSPENDED,tid);
SetThreadPriority(tid,THREAD_PRIORITY_TIME_CRITICAL);
SetPriorityClass(GetCurrentProcess,REALTIME_PRIORITY_CLASS);
ResumeThread(tid);
SetPriorityClass(GetCurrentProcess,NORMAL_PRIORITY_CLASS);
end;
mit __
asm { rdtsc } könnte man noch die tickcounts lesen und wirklich auf 1msek genau prüfen
obs aber sinnvoll is das so zu machen ist ne andere frage