none
Timing Probleme Task ruft FileStream mehrfach auf RRS feed

  • Frage



  • Hallo zusammen,

    Sorry wenn der Titel etwas konfus ist, ich weiß aber leider nicht wie ich es besser umschreiben kann :|
    ich habe ein kleines Programm geschrieben welches mir Paket vom COM Port ausließt.
    Dazu hab ich einen eigenen Task erstellt:

    C#-Code:
    Task task = new Task(delegate
      {
        Com_Port_Read_Start(syncByte);
      });
    task.Start();

    in dem Task such ich das syncByte und lese dann in einer Endlosschleife immer 12 Bytes. Das geht auch super.
    Nun wollt ich die 12 Bytes vorherarbeiten und daraus einen String basteln welchen ich in eine Datei schreibe.
    Dafür hab ich mir eine Funktion erstellt:

    C#-Code:
    // write Packet in next line of file
            public static  void WriteFile(string packet)
            {
                DateTime localDate = DateTime.Now;
                using (FileStream File = new FileStream(FileName, FileMode.Append))
                  using (BinaryWriter writer = new BinaryWriter(File, Encoding.ASCII))
                  {
                      // Write Header
                      writer.Write(localDate.ToString() + " : " + packet);
                      writer.Write(Environment.NewLine);
                  }
            }

    Leider läuft dieses nicht perfekt rund ;) ich glaube es liegt daran das ich einen eigenen Task erstellt habe welcher diese Funktion aufruft ...
    Gibt es eine Möglichkeit eine Datei beim Start des Programmes zu öffnen, bei jeden Durchlauf der schleife im neuen Task eine Zeile zu schreiben und beim beenden des Programms die Datei schließt.

    bin dankbar für jeden Tipp,

    VG Thomas
    Mittwoch, 15. März 2017 09:35

Antworten

Alle Antworten