异步任务处理类:PageAsyncTask
来源:互联网 发布:假授权书能通过淘宝吗 编辑:程序博客网 时间:2024/06/05 10:59
http://www.xuebuyuan.com/580011.html
异步任务处理类:PageAsyncTask
PageAsyncTask类包含对注册到页面的异步任务的管理,能够通过编程的方式在页面呈现前执行多个任务,还可以指定这些任务的运行模式是并行还是串行。任务的运行期在页面的PreRender事件和PreRenderComplete事件之间。
PageAsyncTask类的方法多是类的通用方法。其只提供了异步任务的一些属性,如任务对象的状态和异步对象的运行模式等。我们可以通过这些属性,设计异步任务处理功能。
语法定义:
public sealed class PageAsyncTask
属性详解:
PageAsyncTask类的属性用来指定运行的一些方法。
BeginHandler: 获取当异步任务开始时要调用的方法。 返回结果:System.Web.BeginEventHandler 委托,表示当异步任务开始时要调用的方法。
EndHandler : 获取当任务在超时期内成功完成时要调用的方法。返回结果: System.Web.EndEventHandler 委托,表示当任务在超时期内成功完成时要调用的方法。
ExecuteInParallel: 获取一个值,该值指示任务能否与其他任务并行处理。 返回结果: 如果任务应当与其他任务并行处理,则为 true;否则为 false。
State:获取表示任务状态的对象。 返回结果: System.Object,表示任务状态。
TimeoutHandler:获取当任务未在超时期内成功完成时要调用的方法。返回结果: System.Web.EndEventHandler 委托,表示当任务未在超时期内成功完成时要调用的方法。
典型应用:使用PageAysncTask异步执行任务
学习如何实现页面异步任务。虽然任务很简单,只是输出一行语句,但对于如何调用异步任务的步骤却讲述得很清晰
1、新建一个网站,命名为“PageAsyncTaskSample”.
2、打开Default.aspx页面,在指令“@Page”中设置运行异步执行得属性,同时设置异步超时的时间为10秒,具体代码如下:
<%@ Page Language="C#" AutoEventWireup="true" Async="true"AsyncTimeout=10
CodeFile="Default.aspx.cs" Inherits="_Default" %>
3、在Page_Load事件中,注册一个新任务,代码如下。可以看到在执行任务的前后都显示语句,可通过次判断任务的执行方式。
protected void Page_Load(object sender, EventArgs e) { Response.Write("没有任务前"); PageAsyncTask task = new PageAsyncTask(new BeginEventHandler(BeginAsync), new EndEventHandler(EndAsync), new EndEventHandler(TimeoutAsync), null);//定义异步任务 RegisterAsyncTask(task);//注册异步任务 Response.Write("执行任务后"); }
4、任务中涉及的委托和事件的代码如下:
protected delegate void AsyncTaskDelegate(); IAsyncResult BeginAsync(object sender, EventArgs e, AsyncCallback asyncCall, object state) { //获取用户的特色设置,假设已经获取完毕 AsyncTaskDelegate _dlgt = new AsyncTaskDelegate(getProfile); IAsyncResult result = _dlgt.BeginInvoke(asyncCall, state); return result; } void EndAsync(IAsyncResult result) { Response.Write("您的特色设置任务已经完成"); } void TimeoutAsync(IAsyncResult result) { Response.Write("Sorry,任务处理超时"); } private void getProfile() { Response.Write ("特色设置已近获取完毕"); //考虑到篇幅问题,此处直接返回值 }
5、运行程序,测试异步任务程序的执行情况和语句显示的顺序。
- 异步任务处理类:PageAsyncTask
- ASP.net PageAsyncTask 异步任务---待解
- 如何在ASP.NET页面中使用异步任务(PageAsyncTask)
- 如何在ASP.NET页面中使用异步任务(PageAsyncTask)
- 如何在ASP.NET页面中使用异步任务(PageAsyncTask)
- PageAsyncTask类
- 异步任务处理(转)
- 异步任务处理
- sidekiq异步处理任务
- 异步处理任务框架
- Android-异步任务处理
- sidekiq 异步处理任务
- GCD异步处理任务
- Android异步任务处理
- 异步任务处理---AsyncTask
- 异步任务处理---AsyncTask
- android异步任务处理
- java异步任务处理
- SQLite3学习2
- 判断UITextField.text是否为空
- C#输入类型检查异常
- POJ 1182 食物链(经典并查集)
- 驱动之一些常用命令
- 异步任务处理类:PageAsyncTask
- 计算机科学中最重要的32个算法
- libnids api
- poj1065
- 记录-数据结构第一章上机练习题
- Ural1042(高斯消元+枚举自由变元)
- 第二章 数据类型、运算符和表达式学习要求和实验
- 杭电OJ 1028:Ignatius and the Princess III
- [Hexo]使用Hexo(博客)+Gitcafe(服务器)+QiNiu(图床)搭建个人博客