C#跨线程共享文件句柄

时间:2011-02-24 12:04:58

标签: c#

我有一段由n个线程执行的代码。代码包含,

for(;;)//repeat about 10,000 times
{
    lock(padlock)
    {
        File.AppendAllText(fileName, text);
    }
}

基本上,所有线程都写入同一组10,000个文件,因此文件是共享资源。问题是每个线程执行的10,000次打开,写入,关闭都会大大减慢我的程序。如果我可以跨线程共享文件处理程序,我将能够保持它们打开并从不同的线程写入。有人可以说明我的进展吗?

2 个答案:

答案 0 :(得分:1)

让所有线程写入同步列表。 让一个线程“吃掉”列表中的项目,并用一个FileWriter将它们写入文件。

解决Presto问题以换取一些额外的内存使用。

答案 1 :(得分:0)

我建议您使用FileStream打开该文件并与fileName分享,而不是{{1}}。