danke für die schnelle antwort.
über die Sleep funktion hatte ich mir auch schon gedanken gemacht das die vielleicht nicht die beste lösung ist.
und dass mit der INFINITE Konstante macht in meinem fall keinen sinn.
ich habe für jeden thread drei verschiedene Callback funktionen die mir genau sagen wann und was abgeht;
und somit kann ich auf die anderen threads reagieren.
mir ging es hauptsächlich ums perfect timing from within the loop.
Delphi-Quellcode:
procedure TBassRecorder.RecThreadWorkerCallback(Thread: TMultiThreadThread;
Parameters : TObject; var Data, Results : TObject);
begin
// main thread wo sehr hart gearbeitet wird
end;
procedure TBassRecorder.VasThreadResultsCallback(Sender: TObject; var Data, Results: TObject);
var
WorkResult: TWorkResult;
begin
WorkResult := TWorkResult(Results);
if WorkResult.Status = thFinished then
begin
ThreadFinished[THREAD_VAS]:= True;
end;
end;
procedure TBassRecorder.VasThreadMessage(Sender: TObject; var Message1, Message2: TObject);
begin
// test
if TWorkMessage(Message1).Status = thStarting then
begin
ThreadFinished[THREAD_VAS]:= False;
end;
if TWorkMessage(Message1).Status = thTerminated then
begin
ThreadFinished[THREAD_VAS]:= True;
end;
end;
wie schon gesagt das ding ist ein kompliziertes monster geworden. aber ich denke ich habe die meisten fehler ausgemerzt.
natürlich muss ich das ganze auch auf anderen Systemen testen.
hat nichts mit dem thema zutun aber rein theoretisch, welche features würdet ihr euch in ein Sound-Recorder wünschen
thanks again for your help.