2017-03-01 3 views
0

Nehmen wir an, ich bekomme eine Menge Daten (Text) in einer Schleife, wenn mein Timer tickt und ich möchte alles niederschreiben (vielleicht sogar zu verschiedenen Dateien). Deshalb möchte ich meine Protokolldatei (en) offen halten, seit ich mein Programm starte. Welche Klassen (FileStream, StreamWriter) oder welche Strategie soll ich in diesem Fall verwenden? Ich frage nicht nach Code, ich möchte nur einen Rat hier. Vielen Dank.C# Anhängen an Datei ohne "using" Anweisung

+2

Ich würde sagen: "erfinden Sie das Rad nicht neu". Verwenden Sie Logging-Framework wie Log oder Log4net oder eine andere – lordkain

+0

Öffnen Sie einfach die Datei * außerhalb * der Schleife. –

+1

[mit Direktive] (https://msdn.microsoft.com/en-us/library/sf0df423.aspx). Ich sehe nicht, was das mit Loops oder Dateien zu tun hat. Meinst du vielleicht [Anweisung verwenden] (https://msdn.microsoft.com/en-us/library/yh598w02.aspx)? Wenn eine Sprache über zwei Funktionen verfügt, die beide dasselbe Keyword enthalten, hilft es, wenn Sie die richtige verwenden. Es hilft sogar noch weiter, wenn Sie, wenn Sie nicht den offiziellen Namen verwenden, zumindest den Namen der * anderen * Funktion vermeiden. –

Antwort

1

Öffnen Sie Ihre Datei außerhalb der Schleife und halten Sie den Stream offen. Wenn Sie später schließen möchten, können Sie dispose aufrufen. Die bessere Idee zu loggen ist mit einem Logging-Framework wie log4net oder anderen, die Sie finden.