XmlReader异步VS Sinc

时间:2019-01-19 23:34:30

标签: c# xml performance asynchronous xmlreader

我知道,在调用异步方法时,会从池中分配线程,这会产生成本。

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文件。

0 个答案:

没有答案