Forum: Sonstige Fragen zu Delphi
Delphi
by ghost007,
18. Mär 2010
Hmm, theoretisch könntest du es auch über lokale sockets machen :D wenn das dir besser gefällt.
//Edit: Hätte den Vorteil, dass du die "Reader-Threads" später auch mal als eigenständiges Programm machen kannst, wenn es die Performance verlangt.
Forum: Sonstige Fragen zu Delphi
Delphi
by ghost007,
18. Mär 2010
Naja, zum übergeben der Daten MUSST du in irgend einer Form synchronisieren. Entweder über das besagte Synchronize oder eine CriticalSection.
Forum: Sonstige Fragen zu Delphi
Delphi
by ghost007,
18. Mär 2010
Hm, dann hab ich das wohl mit java verwechselt... dachte das Synchronize bezieht sich nur auf die jeweilige Klasse.
Forum: Sonstige Fragen zu Delphi
Delphi
by ghost007,
18. Mär 2010
Hi Blup,
bist du dir sicher, dass der Synchronize call auf die DoOnInput, den Zugriff auf die Property FDaten thread-safe macht?
Ich glaub nämlich nicht. So wie ich das verstanden habe, bewirkt synchronize ja nur, dass die Procedure nur sequentiell aufgerufen werden kann. Das schützt die Variable aber nicht vor Änderungen.
Forum: Sonstige Fragen zu Delphi
Delphi
by ghost007,
18. Mär 2010
Hey,
wie schon gesagt, ich würde dem Thread eine Variable geben, in der du eine Procedure speicherst. Die Procedure wird dann vom Thread aufgerufen, wenn er Daten loswerden will. Die Procedure selber liebt im Hauptprogramm. Natürlich musst du diese Procedure in einer CritialSection aufrufen, da du sonst Probleme mit inkonsistenten Daten bekommen kannst.
//Edit: Natürlich kann die besagte...
Forum: Sonstige Fragen zu Delphi
Delphi
by ghost007,
18. Mär 2010
Naja, du musst das "Ereginis" im Prinzip zur Hauptanwendung durchreichen. Egtl. musst du dir nur eine Procedure baun, die als Notification fungiert und dann darauf reagieren. Verstehe dein Problem jetzt nicht so ganz. Ich würde dem Thread eine variable geben, in die du beim erstellen des Threads die Notify Procedure übergibst. Die kann der Thread dann aufrufen und das Hauptprogramm weiß bescheid.