我有以下代码来读取文件
StreamReader str = new StreamReader(File.Open(fileName, FileMode.Open, FileAccess.Read));
string fichier = str.ReadToEnd();
str.Close();
这是 asp.net 网络服务的一部分,并且已经在生产中运行了一年。现在随着服务器负载的增加,客户开始收到“文件已在使用”错误。该文件正在从此代码中读取,并且永远不会从应用程序中写入。
我清楚地看到的一个问题是我们没有缓存文件的内容以供将来使用。我们会这样做。但我需要了解我们为什么以及如何遇到这个问题。
是因为多个线程试图读取文件吗?我读到 StreamReader 不是线程安全的,但是当我在读取模式下打开文件时为什么会出现问题?