我有一段由n
个线程执行的代码。代码包含,
for(;;)//repeat about 10,000 times
{
lock(padlock)
{
File.AppendAllText(fileName, text);
}
}
基本上,所有线程都写入同一组10,000个文件,因此文件是共享资源。问题是每个线程执行的10,000次打开,写入,关闭都会大大减慢我的程序。如果我可以跨线程共享文件处理程序,我将能够保持它们打开并从不同的线程写入。有人可以说明我的进展吗?
答案 0 :(得分:1)
让所有线程写入同步列表。 让一个线程“吃掉”列表中的项目,并用一个FileWriter将它们写入文件。
解决Presto问题以换取一些额外的内存使用。
答案 1 :(得分:0)
我建议您使用FileStream
打开该文件并与fileName
分享,而不是{{1}}。