前提・実現したいこと
C#の勉強を初めて半年ほどとなります。
現在windowsFormでソフトを開発しております。その際にCSVファイルの読み書きを行う必要があるのですが
データ量が多いためUIとは別のスレッドでファイルの読み書きをしたいと考えております。
StreamReader/Writerクラスのasync/awaitを使用したスレッドセーフなCSVファイルの読み書きの方法をご教示いただけますでしょうか。
該当のソースコード
C#
1static void ReadCsv() 2{ 3 try 4 { 5 // csvファイルを開く 6 using (var sr = new System.IO.StreamReader(@"test.csv")) 7 { 8 // ストリームの末尾まで繰り返す 9 while (!sr.EndOfStream) 10 { 11 // ファイルから一行読み込む 12 var line = sr.ReadLine(); 13 // 読み込んだ一行をカンマ毎に分けて配列に格納する 14 var values = line.Split(','); 15 // 出力する 16 foreach (var value in values) 17 { 18 System.Console.Write("{0} ", value); 19 } 20 System.Console.WriteLine(); 21 } 22 } 23 } 24 catch (System.Exception e) 25 { 26 // ファイルを開くのに失敗したとき 27 System.Console.WriteLine(e.Message); 28 } 29}
試したこと
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたのいうスレッドセーフとはどういうことでしょうか。ふつーに別スレッドで読み書きするのではダメなんでしょうか

別スレッドにするそもそもの目的はなんですか? UI 応答性に問題があるのでそれを改善するという話ではなさそうに見えますが。全体的な処理時間の短縮を考えているとするとむしろ逆効果だと思います。
