В зависимости от размера файла и типа операций чтения, которые вы делаете, может быть быстрее сначала загрузить файл в память, а затем предоставить доступ к нему непосредственно вашим потокам.
Вы не предоставилилюбые особенности файла, чтения и т. д., поэтому я не могу точно сказать, будет ли это соответствовать вашим конкретным потребностям.
Общая предпосылка заключается в том, чтобы загрузить файл один раз в один поток, а затем либо напрямую (через структуру Xml) или косвенно (через XmlNodes и т. д.) предоставляют доступ к файлу каждому из ваших потоков.Я предполагаю что-то похожее на:
- Загрузить файл
- Для каждого запроса Xpath отправьте соответствующие узлы в ваши потоки.
Если потоки не изменяютсянапрямую XML, это может быть жизнеспособной альтернативой.