我想就我的代码寻求帮助。我是一个新手,想在写入文本文件时实现安全的多线程。
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
,每个记录都创建一个线程,每个线程访问相同的文本文件。