StreamWriter Multi Threading C #
Ich möchte um Hilfe zu meinem Code bitten. Ich bin ein Neuling und wollte sicheres Multi-Threading beim Schreiben in eine Textdatei implementieren.
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);
}
Ich habe keinen Fehler in meinem Code, aber es scheint nicht alles in meine Textdatei geschrieben zu sein. Ich habe nicht gemachtsw.Close()
weil ich weiß, dass einige Threads noch nicht fertig waren. Außerdem, wie kann ich implementierensw.Close
wohl wissend, dass kein thread unvollendet blieb. Ich habe 5 Millionen Rekorde in meinemLUSTK.text
das ist zu lesen vonStreamReader
und jeder hat einen Thread erstellt und jeder Thread greift auf dieselbe Textdatei zu.