Einzelnen Beitrag anzeigen

Osse

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

Re: Array in Thread übergeben

  Alt 26. Mai 2005, 19:26
Danke sakura und Olli,

hab das Problem jetzt anders gelöst.

Zitat:
Die Lösung ist recht einfach, Du musst anstatt array of TCANRcvMsg zu direkt nutzen, einen Typ deklarieren und den nutzen

Hab einfach einen 2dim Array angelegt und übergebe immer in welchem ich arbeite.
Hatte bei sakura Lösung ein Problem mit meinen Threads beim beenden. War aber sonst super Idee .

Noch eine letzte Frage zu den Threads:

Zitat:
Es würde reichen ihn einzuschläfern (suspend) und wieder aufzuwecken.
Ich möchte den 2. thread über eine synchronisierung Starten. Kann ich einfach in der Routine den Thread wieder aufwecken??Wenn ja, wie ist die Syntax??

Delphi-Quellcode:
procedure TDateiSchreiben.Execute;
begin
   var
   dwResult: Longword;
   Zaehler : Integer;      // Zählvariable für die Datei
   Dateiname : String;
   Datei : TextFile;
begin
  try
    Synchronize(DatenEinlesen); // Datenspeicher + Zähler werden aus dem RcvThread eingelesen
    Dateiname := DateToStr(Date) + '.csv'; //Daetinamen erstellen, mit Hilfe des Datums
    AssignFile(Datei,Dateiname);       //Datei erstellen zum schreiben der Daten
    If FileExists(Dateiname)then //Prüfen ob Datei schon vorhanden ist. Wenn Ja, dann abfragen, ob datei überschrieben
      begin
   {$I-}
   Reset(Datei);
   Append(datei);
   {$I-}
      end
   else
     begin
   {$I+}
   ReWrite(datei); //Datei neu anlegen
   writeln(datei,    '" # "'   );
   writeln(datei,    '" ID "' ....+ ';' + '" Time micros"');
    for Zaehler := 1 to Max_Anzahl_Datenspeicher do
      writeln(datei, IntToStr(Datenspeicher[Speicherauswahl,Zaehler].msgbuff.ID)...);
   closefile(datei);
  except
    showmessage(' Es ist ein Fehler beim speichern der Daten aufgetreten!!! Dies könnte zum unerwünschten Datenverlust führen!!');
  end;
end;

Wo muss ich denn jetzt "suspend" einfügen und wie wecke ich den Thread wieder auf??

Danke
  Mit Zitat antworten Zitat