Pie*_*ces 14 c# xml parallel-processing foreach file
我有一个需要多次读取的xml文件.我正在尝试使用Parallel.ForEach来加速这个过程,因为没有读入的数据与它正在读入的顺序有关.数据只是用于填充对象.我的问题是即使我每次在线程中打开文件只读它抱怨它是由另一个程序打开.(我没有在文本编辑器中打开它或任何东西:))
如何从同一个文件中完成多次读取?
编辑:文件大约是18KB.它读取大约1800次.
谢谢
Tim*_*mwi 32
如果要从同一文件中读取多个线程,则需要指定FileShare.Read
:
using (var stream = File.Open("theFile.xml", FileMode.Open, FileAccess.Read, FileShare.Read))
{
...
}
Run Code Online (Sandbox Code Playgroud)
但是,由于多种原因,您无法实现任何加速:
根据文件的大小和您正在执行的读取类型,首先将文件加载到内存中可能会更快,然后直接向您的线程提供对它的访问。
您没有提供有关文件、读取等的任何细节,因此我无法确定它是否能满足您的特定需求。
一般前提是在单个线程中加载一次文件,然后直接(通过 Xml 结构)或间接(通过 XmlNodes 等)为每个线程提供对文件的访问。我设想类似于:
如果线程不直接修改 XML,这可能是一个可行的替代方案。
归档时间: |
|
查看次数: |
28802 次 |
最近记录: |