Thema: Delphi µ Timer

Einzelnen Beitrag anzeigen

brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#19

Re: µ Timer

  Alt 18. Apr 2005, 18:33
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
  Mit Zitat antworten Zitat