我知道,在调用异步方法时,会从池中分配线程,这会产生成本。
XmlReader具有异步实现:
using (var r = XmlReader.Create(fs, new XmlReaderSettings() { Async = true }))
{
while (await r.ReadAsync())
{
if (r.IsStartElement())
{
switch (r.Name)
{
case "a": var a = await r.ReadElementContentAsStringAsync(); break;
case "b": var b = await r.ReadElementContentAsStringAsync(); break;
case "c": var c = await r.ReadElementContentAsStringAsync(); break;
}
}
}
}
在池中分配线程以执行与读取xml元素一样简单的过程是否会浪费处理时间?
我想象只有在已知标签的内容很大时(例如base64中的字符串等),才应使用xml中的异步读取。
上面的代码是同步编写的,不会提高性能吗?当然,读取大约5,000个xml文件或一个大xml文件。