このコードを最適化したい:
public static void ProcessTo(this StreamReader sr, StreamWriter sw, Action<StreamWriter, string> action, FileProcessOptions fpo = null)
{
if (fpo == null)
{
fpo = new FileProcessOptions();
}
List<string> buffer = new List<string>(fpo.BuferSize);
while (!sr.EndOfStream)
{
buffer.Clear();
while (!sr.EndOfStream && buffer.Count < fpo.BuferSize)
{
buffer.Add(sr.ReadLine());
}
if (fpo.UseThreads)
{
buffer.AsParallel().ForAll(line => action(sw, line));
}
else
{
buffer.ForEach(line => action(sw, line));
}
}
}
大量のデータを処理しており、プロセスを並列化したい。通常、データはアーカイブされるため、複数のスレッドを使用してデータの流れを処理することが非常に重要です