AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

timer in thread?

Ein Thema von iphi · begonnen am 8. Nov 2009 · letzter Beitrag vom 9. Nov 2009
 
iphi

Registriert seit: 13. Feb 2009
262 Beiträge
 
Delphi 7 Personal
 
#1

timer in thread?

  Alt 8. Nov 2009, 20:06
Hallo,

ich habe ein Threadobjekt TCapture, welches Daten von einer Soundkarte aufnimmt.
Das ganze funktioniert über Windows Messages, die der Thread.Execute weiterleitet:

Delphi-Quellcode:
procedure TCapture.Execute;
var msg:Tmsg;
begin
  Fwnd:=allocatehwnd(WndProc); //hier ist jetzt dein Windowhandle für MMAudio
  try
    if StartCapture then
      while getMessage(msg,0,0,0) do //warten auf Message
        DispatchMessage(msg) //verteilen auf das entsprechende Fenster
      else SetFailed(true);
  finally
    logging:=false;
    LogStop;
    LogClose;
    Deallocatehwnd(Fwnd);
  end;
end;
So weit so gut. Jetzt folgende Zusatzaufgabe für den Thread:
Er soll einigermaßen genau t Millisekunden nach dem Aufruf StartCapture einmalig eine Procedure aufrufen.
Wie mache ich das am geschicktesten?
Bisher habe ich das außerhalb des Threads gemacht, ist aber bei CPU Lastschwankungen zu unzuverlässig, daher muss das in den Hochprioritätsthread mit hinein.

Kann ich innerhalb des Threads ein Timerobjekt erzeugen, welches mit derselben Prio läuft wie der Thread? Oder baue ich besser die getMessage-Schleife auf peekMessage um und frage regelmäßig die Tickcounts ab und wenn ja, wie würde das mit peekMessage konkret aussehen?

Danke, Thomas
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz