Я читаю листы Icecat как один гигантский XML-документ (1,7 г) и использую xmlnodereader.
Как мне читать это узел за узлом. Я знаю, обычно вы бы этого не делали, но структура выглядит как
<file attr=value>...</file>
<file attr=value>...</file>
<file attr=value>...</file>
<file attr=value>...</file>
<file attr=value>...</file>
вот некоторый существующий код для справки:
foreach (BackgroundWorker worker in Pool)
{
if (worker.IsBusy)
continue;
//read xmlnode and pass it to the worker
}