2014-02-26 171 views
2

我有需要也可以登錄到6種不同的文字files.Currently我使用的StreamWriter將數據寫入到TEXTFILES一前一後的數據。 像這樣寫入多個文本文件在同一時間

using (StreamWriter _writer = File.AppendText(_filePath)) 
{         
    _writer.WriteLine("....Some Text ...");    
} 

但這需要time.Is有相當數量的方式來寫入,同時所有的文本文件?

+1

I/O將是你的開銷 – Jonesopolis

+1

你能在內存中存儲的信息,然後只需將它們寫入磁盤定期或在應用程序關閉? –

+0

嘗試[Logging framework NLog](http://nlog-project.org/)他們已經實現了我想的某種緩存。 –

回答

1

可以使用流作家的列表,並使用Parallel.Foreach在他們寫多個文件同時。

var streamWriters = new List<StreamWriter>(); 
streamWriters.Add(new StreamWriter("1.txt")); 
streamWriters.Add(new StreamWriter("2.txt")); 
streamWriters.Add(new StreamWriter("3.txt")); 
streamWriters.Add(new StreamWriter("4.txt")); 
streamWriters.Add(new StreamWriter("5.txt")); 
streamWriters.Add(new StreamWriter("6.txt")); 

Parallel.ForEach(streamWriters, s => { s.Write("some text"); s.Dispose(); }); 

這可能會提高您的一些表現。

+0

謝謝你..這有助於:) – harin04

+0

歡迎:) – Muctadir