Einzelnen Beitrag anzeigen

iphi

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

Zwei Soundkarten in zwei Threads gleichzeitig auslesen?

  Alt 28. Okt 2009, 16:59
Hallo,

ich habe eine Threadklasse TCapture = class(TThread) geschrieben, die mit MMAudioAPI Funktionen eine wählbare Soundkarte ausliest und die Daten in einem Feld im Thread ablegt. Die Daten und Methoden im Thread sind komplett in TCapture abgekapselt .

Das funktioniert soweit alles gut, so lange ich den Thread nur einmal starte um eine einzige Soundkarte auszulesen.

Wenn ich den Thread aber gleichzeitig zweimal starte um zwei verschiedene Soundkarten auszulesen, kommt viel Datenmüll.

Ich starte die beiden Threads so:
Delphi-Quellcode:
var
  Capture: TCapture;
  Capture2: TCapture;
...
Capture := TCapture.Create(...);
Capture2 := TCapture.Create(...);
Nach meinem Verständnis habe ich so zwei unabhängige Threads erzeugt, die voneinander nichts wissen.

Ist das korrekt?

Wo liegt mein Denkfehler?

P.S. Ich lese die Daten erst aus, wenn beide Threads angehalten wurden, so, dass Multithreading bedingte Datenzugriffsprobleme wohl auszuschließen sind.
  Mit Zitat antworten Zitat