最近项目中大量运用xml和静态页来做缓存碎片,好处嘛有二:
1、文件碎片的过期比较灵活,不由计划任务调度,而是由访客决定何时过期,这样冷门页面自然就不用劳系统的神进行更新;
2、较之静态页,采用缓存文件碎片+动态页方式,能更加灵活地实现功能的控制,诸如一些小功能的更改。

  但经过压力测试,发现同步的文件I/O,在并发过大的情况下,经常会出现锁文件的异常,颇让人头疼

  只有借助异步I/O来解决了,在网上找来了一个功能较完备的工具集代码族,如下:
异步文件IO的应用using System;
异步文件IO的应用
using System.Collections.Generic;
异步文件IO的应用
using System.Text;
异步文件IO的应用
using System.Data;
异步文件IO的应用
using System.Data.SqlClient;
异步文件IO的应用
using System.Threading;
异步文件IO的应用
using System.ComponentModel;
异步文件IO的应用
using System.Collections;
异步文件IO的应用
using System.Collections.Specialized;
异步文件IO的应用
using System.IO;
异步文件IO的应用
异步文件IO的应用
namespace IndieFacade
}

  这里稍进行了一点改动,将标识ID(即userToken)改为了long型,在页面级别应用时,可直接将一个时间Ticks塞入以进行标识,如果这还不够,那就相当寸了,但也不坏,至少能读出东西来

  据MSDN的说法,要应用异步IO功能,必须将Page的异步模式开关打开,即在页头这样写 <%@ Page sync="true"...,然后,异步代码族的调用必须在OnPreRender(EventArgs e)事件之前(含)调用,那么就可以这么写:
异步文件IO的应用    protected override void OnPreRender(EventArgs e)
    }

相关文章:

  • 2021-07-13
  • 2021-09-15
猜你喜欢
  • 2021-09-20
  • 2021-08-04
  • 2022-12-23
  • 2022-02-25
  • 2021-04-17
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案