我在每个阶段都使用 PLINQ,但会生成 XML 输出。我尝试了一些古怪的异常。所以我想知道是否有一个技巧可以让我进行异步输出。
...
[DataContract(Namespace = "")]
public class MyClass
{
[DataMember]
public ulong Id { get; set; }
[DataMember]
public int[] Value { get; set; }
}
...
private static readonly DataContractSerializer _serializer =
new DataContractSerializer(typeof(MyClass));
...
XmlDocument _resultDoc = new XmlDocument();
...
using (var writer = _resultDoc.CreateNavigator().AppendChild())
{
writer.WriteStartElement("root");
writer.WriteAttributeString("ver", "0");
{
//--------------------------------------------------
// Want this to be:
// myDictionary.ToList().ToParallel().ForAll(pair =>
//--------------------------------------------------
myDictionary.ToList().ForEach(pair =>
_serializer.WriteObject(
writer,
new MyClass
{
Id = pair.Key.Id,
Value = pair.Value.ToArray()
}
)
);
}
writer.WriteEndElement();
}