【发布时间】:2011-09-11 08:19:54
【问题描述】:
我有一组 XML 文件,我想加载到内存中以便处理。
我正在将文件加载到集合中,如果我在单个线程中加载文件而不是使用线程池,它似乎要快得多。
我原以为情况会相反。
为什么使用多个线程将文件加载到内存中比我只遍历文件列表并在单个线程上一个接一个地加载每个文件要慢得多?
这是 C# .net 3.5
代码:
ICollection<XmlDocument> xmlFilesToProcess = new Collection<XmlDocument>();
foreach (FileInfo fileInfo in fileList)
{
ThreadPool.QueueUserWorkItem(
(o) =>
{
XmlDocument doc = new XmlDocument();
doc.Load((string)o);
lock (xmlFilesToProcess)
{
xmlFilesToProcess.Add(doc);
counter++;
}
}, fileInfo.FullName);
}
【问题讨论】:
标签: c# multithreading performance file