工作又一次到了轻松的时候,中午把平台的角色管理整理好后,简单的查询了一下关于异步的相关资料。在最近的客户要求中,他们想让BS系统有CS某些效果,如果仅仅把开发放到原有的基础,是无法给他们在性能和客户体验上达到一个他们期望的效果的,因此也找到了一种可以异步同时处理数据的处理机制,多少可以在性能上提高一点。
这个模型最大的好处在于可以在一次页面请求中处理多个异步任务,并且还可以用超时处理来避免在执行异步操作时出现的无响应情况。
懒惰惯了,就把主要的代码直接贴在上面,必要的注释都在代码里写上罢了!
详细信息可以参考:http://msdn.microsoft.com/zh-cn/developercenters/ms153491.aspx
首先,我们需要在页面的指令上设置异步的属性
CS文件
1
}
上面的代码是否没有体现出我们有什么异步的事情,其实,我们可以同时处理很多的,我们这里需要在Buttons事件里添加更多的异步即可
1
protected void Button1_Click(object sender, EventArgs e)
2
}
2
注意:如果我们不使用ExecuteRegisteredAsyncTasks(),这三个任务便只好分享AsyncTimeout规定的运行时间了,如果第一个出现异常就会影响到以后所有的任务。感谢asp.net2.0给我们带来的方便,每次调用ExecuteRegisteredAsyncTasks()时,都会重置AsyncTimeout,这就可以让每个任务独自享受AsyncTimeout规定的时间了。