4

我需要每分钟将信息记录到文件中大约 1000-2000 次。我还需要保存该信息以防应用崩溃。

目前这是我正在做的事情:

using(StreamWriter sw=new StreamWriter(filename,true))
{
    sw.WriteLine(info);
}

这行得通,但速度极慢。

我想做这样的事情:

static StreamWriter sw=new StreamWriter(file,true);

....

public static void Main(...)
{
    .....
    sw.WriteLine(....);
}

但是当我写这样的代码时,我担心当应用程序崩溃时我存储的信息会丢失。

我可以做些什么来保留文件中的信息而不必一直打开和关闭它?

4

2 回答 2

6

You can call StreamWriter.Flush() after each write.

public static void Main(...)
{
    .....
    sw.WriteLine(....);
    sw.Flush();
}

But you should use NLog or Log4Net!

于 2013-05-14T15:02:31.397 回答
1

我使用了这个,它实现了一个队列,每 X 条消息或 Y 时间刷新一次。

您可以改进它在 flushLog() 中将 using 块移到 while 之外并设置固定文件名

于 2013-05-14T15:09:03.910 回答