double値をファイルに書き込む必要があるという点でスレッドセーフなプログラムを構築する最良の方法は何ですか? ストリームライターを介して値を保存する関数が複数のスレッドによって呼び出されている場合は? それを行う最良の方法は何ですか?
コメントからのコード:
static void Main()
{
List<double> Values = new List<double>();
StreamWriter writer = new StreamWriter("test.out");
for (int i = 0; i < 1000; i++) Values.Add(i);
foreach (double V in Values)
{
ThreadPool.QueueUserWorkItem(delegate(object state) { SaveValues(writer, V); }, V);
}
}
static void SaveValues(StreamWriter writer, double Value)
{
lock (writer) writer.WriteLine(Value);
}