asp.net异步调用webService

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AsyncDemo.aspx.cs" Inherits="Scene_AsyncDemo" Async="true" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server"></asp:GridView>   
    </div>
    </form>
</body>
</html>
============================================= 

 private StaticData staticData;
    private ProvinceDataSet provinceDataSet;
    private IAsyncResult ar;
    protected void Page_Load(object sender, EventArgs e)
    {
        staticData = new StaticData();
        this.PreRenderComplete += new EventHandler(Page_PreRenderComplete);
        //.net1.1
        this.AddOnPreRenderCompleteAsync(this.BeginProvince, this.EndProvince);

        //.net2.0
        //this.AsyncProvince();
    }
    protected void Page_PreRenderComplete(object sender, EventArgs e)
    {
        this.GridView1.DataSource = this.provinceDataSet;
        this.GridView1.DataBind();
    }
    /// <summary>
    /// .net1.1中异步
    /// </summary>
    public IAsyncResult BeginProvince(object sender, EventArgs e, AsyncCallback cb, object asyncState)
    {
        this.ar = staticData.BeginGetProvince(cb, asyncState);
        return staticData.BeginGetProvince(cb, asyncState);
    }
    public void EndProvince(IAsyncResult ar)
    {
        provinceDataSet = staticData.EndGetProvince(ar);
    }
    private void CancelProvince()
    {
        WebClientAsyncResult webClientAsyncResult = (WebClientAsyncResult)this.ar;
        webClientAsyncResult.Abort();
        ar = null;
    }

    /// <summary>
    /// .net2.0中事件驱动的异步
    /// </summary>
    public void AsyncProvince()
    {
        staticData.GetProvinceCompleted += new GetProvinceCompletedEventHandler(GetProvinceCompleted);
        staticData.GetProvinceAsync();
    }
    public void GetProvinceCompleted(Object source, GetProvinceCompletedEventArgs e)
    {
        provinceDataSet = e.Result;
    }
    public void AsyncCancel()
    {
        //staticData.Abort();
        staticData.CancelAsync(null);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值