私のコードについて助けを求めたいです。私は初心者で、テキスト ファイルへの書き込みで安全なマルチ スレッドを実装したいと考えていました。
StreamWriter sw = new StreamWriter(@"C:\DailyLog.txt");
private void Update(){
var collection = Database.GetCollection<Entity>("products");
StreamReader sr = new StreamReader(@"C:\LUSTK.txt");
string[] line = sr.ReadLine().Split(new char[] { ';' });
while (!sr.EndOfStream)
{
line = sr.ReadLine().Split(new char[] { ';' });
t = delegate {
UpdateEach(Convert.ToInt32(line[5]));
};
new Thread(t).Start();
}
sr.Close();
}
private void UpdateEach(int stock)
{
sw.WriteLine(ean);
}
コードにエラーはありませんでしたが、すべてがテキスト ファイルに書き込まれているわけではないようです。sw.Close()
一部のスレッドがまだ終了していないことがわかっているため、作成しませんでした。sw.Close
さらに、未完了のスレッドがないことを知って実装するにはどうすればよいですか。500 万件のレコードLUSTK.text
が読み取られStreamReader
、それぞれがスレッドを作成し、各スレッドが同じテキスト ファイルにアクセスします。