using var zipFile = ZipFile.OpenRead(@"someFiles.zip");var myFile = zipFile.Entries.FirstOrDefault(file => file.Name is "largeXmlFile.xml");var myFileStream = myFile.Open();
using var zipFile = ZipFile.OpenRead(@"someFiles.zip");var myFile = zipFile.Entries.FirstOrDefault(file => file.Name is "largeXmlFile.xml");var myFileStream = myFile.Open();
then putting this
Stream
Stream
into
XmlReader
XmlReader
:
using var xmlReader = XmlReader.Create(myFileStream , new() { Async = true });
using var xmlReader = XmlReader.Create(myFileStream , new() { Async = true });
And I am simply reading it:
var objects = new List<MyObject>();while (await xmlReader.ReadAsync()){ if (xmlReader is { NodeType: XmlNodeType.Element, Name: "OBJECT" }) { objects.Add(ReadMyObject(xmlReader)); }}
var objects = new List<MyObject>();while (await xmlReader.ReadAsync()){ if (xmlReader is { NodeType: XmlNodeType.Element, Name: "OBJECT" }) { objects.Add(ReadMyObject(xmlReader)); }}
It takes ages for reading this file, so my question is: How can I change my code so I will read this XML in Parallel mode?