Ich habe ein Programm, das etwa wie folgt aussieht:Protokollierung und Flush in .net
public partial class It
{
static StreamWriter logging
= new StreamWriter(new FileStream(@"C:\log",FileMode.Create));
void someFn()
{
logging.WriteLine("foo");
logging.Flush();
/// killed here in debugger with Shift+F5
}
}
Das Problem, dass die Datei nicht in „foo
“ endet und es scheint, der Flush nicht geschieht. Mißbrauche ich hier etwas? Ich brauche eine "die Bits sind in der Datei, wenn ich zurückkomme" -Funktion, existiert so etwas?
Ideal wäre, dass, wenn ich an diesem Punkt zu brechen, ein anderer Prozess Ballen sein wird, um diese letzte geschriebene Zeile zu sehen.
Ich kann es nicht reproduzieren; Wenn ich Ihren Code ausführen und nach der Protokollierung mit dem Debugger brechen.Flush die Datei enthält "foo". –
Sie sagen die Datei "endet nicht in foo" - was endet es? Gibt es hier einen anderen Code (möglicherweise in einem anderen Thread)? –
Es endet in Sachen, die vor "foo" geloggt wurden: Das Ende der Datei fehlt. Und das ist nicht der genaue Fall, den ich habe. – BCS