zoukankan      html  css  js  c++  java
  • 串行化数据读取类(WebService下DataSet的高性能替代类)源代码

        串行化数据读取类实现了IXmlSerializable接口,实现了.NET 1.0下的WebService大数据量传输,是DataSet类的一个高性能的替代类。由于SerialDataReader类采用DataReader从数据库提取数据,大大的降低了大数据量的情况下IIS服务器的内存压力。
    根据实际测试,相同的数据的情况下,SerialDataReader实际传输数据量是DataSet的1/2左右,传输速度相比较DataSet大概能提高大约1倍左右。另外,CompressSerialDataReader类提供了数据压缩处理,性能上更加强悍,如果使用CompressSerialDataReader,相同数据量的情况下能比DataSet快5倍。
        无论是SerialDataReader类还是CompressSerialDataReader类都提供了客户端异步读取数据的能力,能够保证调用WebMethod时能够一边传输数据一边往UI上填充数据。
        PS:最佳实践是在SerialDataReader的DataRowTransported事件中不要填充UI,而是将数据缓存,在UI线程中通过同步对象循环的读取数据,这样能够获得比响应事件来填充数据快将近一倍。
    例子代码:
    在UI线程中
    While(true)
    {
        if ( hasData )
        {
            FillData();
        }
        //保证可以响应事件
        Application.DoEvent();
    }
    在传输线程中:
    OnDataTransported()
    {
       SyncLock( Buffer )
      {
         Buffer.Add( Data );
      }
    }
    如果在使用上有什么疑问,欢迎来信咨询,我的邮箱zengezenge@hotmail.com
    源代码下载地址
    https://files.cnblogs.com/zengezenge/SerialDataReader.rar
  • 相关阅读:
    文件上传
    data.push({name:'a',value:'a'});
    es数据迁移脚本(python)
    es修改数据类型
    SqlServer应用程序的高级Sql注入
    ASP.NET中如何防范SQL注入式攻击
    AJAX.NET框架构建Lookup服务器控件
    asp.net 读写 XML 小结
    Global.asax 文件
    ajaxpro.2.dll 简单应用
  • 原文地址:https://www.cnblogs.com/zengezenge/p/822461.html
Copyright © 2011-2022 走看看