Reputation: 281
I have the data that needs too be logged into 6 different text files.Currently i'm using streamwriter to write the data into the textfiles one after the other. Like this
using (StreamWriter _writer = File.AppendText(_filePath))
{
_writer.WriteLine("....Some Text ...");
}
But this takes considerable amount of time.Is there a way to write into all the text files at the same time ?
Upvotes: 2
Views: 3714
Reputation: 3626
You can use a list of stream writers and use Parallel.Foreach
over them to write to multiple files concurrently.
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(); });
This may improve some of your performance.
Upvotes: 3