StreamWriter Многопоточность C #
Я хотел бы попросить помощи по моему коду. Я новичок и хотел реализовать безопасную многопоточность при записи в текстовый файл.
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
зная, что ни одна нить не останется незавершенной. У меня 5 миллионов записей в моемLUSTK.text
это должно быть прочитаноStreamReader
и каждый создал поток, и каждый поток имеет доступ к одному и тому же текстовому файлу.