继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

asp.net webform中使用

ajax快速入门培训基础
关注TA
已关注
手记 284
粉丝 176
获赞 719

摘要

最近想着将项目中的部分耗时的操作,进行异步化。就自己弄个demo进行学习。只需下面几个步骤就可以将aspx页面中注册异步操作。

demo

比如我们需要抓取某个url的内容,这个时候我们可能会有下面的一个方法。

复制代码

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Net;using System.Text;using System.Threading.Tasks;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace Wolfy.AsyncWeb{    public partial class Index : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            if (!IsPostBack)            {                this.Page.RegisterAsyncTask(new PageAsyncTask(GetHtmlAsync));            }        }        private async Task GetHtmlAsync()        {            string url = "http://www.cnblogs.com/";            WebClient client = new WebClient();            client.Encoding = Encoding.UTF8;            string html = await client.DownloadStringTaskAsync(url);            string strPath = MapPath("~/html");            if (!Directory.Exists(strPath))            {                Directory.CreateDirectory(strPath);            }            string savePath = Path.Combine(strPath, "blog.txt");            using (FileStream fs = new FileStream(savePath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))            {                byte[] buffer = Encoding.UTF8.GetBytes(html);                await fs.WriteAsync(buffer, 0, buffer.Length);            }        }    }}

复制代码

这时候以为大功告成了,浏览页面的时候发现还是少了点东西。

找到对应的页面添加上async特性。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="Wolfy.AsyncWeb.Index" Async="true" %>

结果

参考

http://blog.csdn.net/youaregoo/article/details/8973387

http://mrbool.com/how-to-create-asynchronous-device-page-in-asp-net-4-5/26022

http://www.cnblogs.com/dudu/p/aspnet-webform-async.html

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP