Einzelnen Beitrag anzeigen

Osse

Registriert seit: 25. Mär 2005
Ort: Hamburg
74 Beiträge
 
Delphi 5 Enterprise
 
#15

Re: Array in Thread übergeben

  Alt 8. Jun 2005, 11:44
Hey alzaimer,

habe im Moment recht wenig Zeit zum hacken.

Hab mich mal gefragt, wie ich die beste Übergabe zwischen denbeiden Threads mache. Wollte immer so 1000 telegramme schreiben, da die Datei zugriffszeit recht "lang" ist.

Dachte nur das mit 2 Arrays zu machen, und die Daten dann immer schön in einer CriticalSection in die Datei zu schreiben, um völlig sicher zu sein. Außerdem wird der Array doch gesperrt, wenn er von dem einen Thread in der CriticalSection benutzt wird, oder hab ich da mal wieder ein Denkfehler ??

Das würde ja bedeuten dass der 1. Thread die ganze Zeit keine Daten in meinen Ringspecher schreiben kann, während der 2. Thread die Daten in die Datei schreibt.

Aber das ist ja genau das, was ich möchte, der 1. Thread ließt die Daten und der 2. schreibt parallel diese in eine Datei.

Im moment hab ich das mit schlafen legen(Suspend) und wieder aufwecken (Resume) realisiert. Werde es aber mal mit dem Event versuchen.
Delphi-Quellcode:
Procedure TWritingThread.Execute;
Begin
  While not Terminated Do Begin
    If WaitForSingleObject (fRingBufferSignal, INFINITE) = WAIT_OBJECT_0 then
      WriteDataFromRingBufferToFile;
End;
fRingBufferSignal ist ein Event, und welches ich mit fRingBufferSignal.Setevent aufrufe, oder??
  Mit Zitat antworten Zitat