サンプルコードがあります。ファイルの読み込み、処理、作成を高速化する方法は?
foreach (var currentFile in currentDirectory)
{
string[] contents = File.ReadAllText(currentFile).Split('%');
using (XmlWriter writer = XmlWriter.Create(currentFile.Replace(".txt",".xml")))
{
writer.WriteStartDocument();
writer.WriteStartElement("INFO");
writer.WriteStartElement("INFO");
writer.WriteElementString("USER", contents[1]);
writer.WriteElementString("USERDATA", contents[2]);
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
}
}
私はそのようなテキストのテキストファイルを持っています:MYNICKNAME%たくさんのデータ。 今私はこのプログラムをマルチスレッド化しようとしています。どの方向に私は掘るべきですか?非同期/待機していますか?私はマルチスレッドにはまったく新しいものです。
私たちはあなたがやろうとしているものに少しより多くの情報が必要になる場合があります。ディレクトリ内のすべてのファイルを1回だけ通過させ、各ファイルをテキストからxmlに変換するだけですか?考慮すべきことの1つは、あなたがこれらのファイルにアクセスする唯一のものかどうかです。 – CM0491
並列処理は、CPU集約的な処理の一部にのみ有効です。あなたのプロセスの多くは並列処理の恩恵を受けないI/Oだと思われます。したがって、処理1と同じ時間に3つのファイルを処理することは現実的な目標ではありません。 –
はい、ディレクトリにファイルを渡してから、処理してxmlファイルを作成します。したがって、ディレクトリ内の各テキストファイルにはxmlがあります。 Imはマルチスレッドで2-3倍の速さにしようとしています –