我正在使用以下的C#代码来读取一个小文本文件,这个文件存储在网络共享中:
string fileContent;
using (var stream = File.OpenRead(filePath))
using (var reader = new StreamReader(stream, FileEncoding))
{
fileContent = await reader.ReadToEndAsync();
}
尽管这个文本文件非常小(不到10KB),但有时这个操作需要大约7秒钟才能运行。当发生这种情况时,我注意到大部分时间都花在了
File.OpenRead(filePath)
可能是因为Windows需要解析文件共享并通过网络获取文件锁。由于该方法调用不是异步的,这会阻塞我的当前线程数秒钟。
是否有安全的方式可以异步从磁盘读取文件,并执行OpenRead异步操作?