<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    精彩的人生

    好好工作,好好生活

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      147 Posts :: 0 Stories :: 250 Comments :: 0 Trackbacks
    為舉例說明異步 Web 方法,我從一個名為 LengthyProcedure 的簡單同步 Web 方法開始,其代碼如下所示。然后我們再看一看如何異步完成相同的任務。LengthyProcedure 只占用給定的毫秒數。

    [WebService]

    public class SyncWebService : System.Web.Services.WebService
    {

    [WebMethod]
    public string LengthyProcedure(int milliseconds)
    {
    System.Threading.Thread.Sleep(milliseconds);
    return "成功";
    }
    }

    現在我們將 LengthyProcedure 轉換為異步 Web 方法。我們必須創建如前所述的 BeginLengthyProcedure 函數和 EndLengthyProcedure 函數。請記住,我們的 BeginLengthyProcedure 調用需要返回一個 IAsyncResult 接口。這里,我打算使用一個委托以及該委托上的 BeginInvoke 方法,讓我們的 BeginLengthyProcedure 調用進行異步方法調用。傳遞到 BeginLengthyProcedure 的回調函數將被傳遞到委托上的 BeginInvoke 方法,從 BeginInvoke 返回的 IAsyncResult 將被 BeginLengthyProcedure 方法返回。

    當委托完成時,將調用 EndLengthyProcedure 方法。我們將調用委托上的 EndInvoke 方法,以傳入 IAsyncResult,并將其作為 EndLengthyProcedure 調用的輸入。返回的字符串將是從該 Web 方法返回的字符串。下面是其代碼:

    [WebService]

    public class AsyncWebService : System.Web.Services.WebService
    {
    public delegate string LengthyProcedureAsyncStub(
    int milliseconds);

    public string LengthyProcedure(int milliseconds)
    {
    System.Threading.Thread.Sleep(milliseconds);
    return "成功";
    }

    public class MyState
    {
    public object previousState;
    public LengthyProcedureAsyncStub asyncStub;
    }

    [ System.Web.Services.WebMethod ]

    public IAsyncResult BeginLengthyProcedure(int milliseconds,
    AsyncCallback cb, object s)
    {
    LengthyProcedureAsyncStub stub
    = new LengthyProcedureAsyncStub(LengthyProcedure);
    MyState ms = new MyState();
    ms.previousState = s;
    ms.asyncStub = stub;
    return stub.BeginInvoke(milliseconds, cb, ms);
    }

    [ System.Web.Services.WebMethod ]
    public string EndLengthyProcedure(IAsyncResult call)
    {
    MyState ms = (MyState)call.AsyncState;
    return ms.asyncStub.EndInvoke(call);
    }
    }


    原文地址:http://ewebapp.cnblogs.com/articles/237375.html
    posted on 2006-05-07 15:18 hopeshared 閱讀(304) 評論(0)  編輯  收藏 所屬分類: Web Service
    主站蜘蛛池模板: 国产色爽免费无码视频| 亚洲熟妇AV一区二区三区宅男| 日日狠狠久久偷偷色综合免费| 日韩黄色免费观看| 国产精品亚洲lv粉色| 亚洲精品无码久久久久A片苍井空| 日韩视频在线精品视频免费观看| 亚洲第一页在线视频| 免费精品国产自产拍在| 2020国产精品亚洲综合网| 毛片免费观看网址| 日韩欧美亚洲国产精品字幕久久久| 日本免费人成视频播放| 日本黄页网址在线看免费不卡| 亚洲伦乱亚洲h视频| 久久国产乱子伦精品免费强| 久久亚洲精品成人无码网站| 国产成人精品免费视频网页大全 | 亚洲色成人网站WWW永久四虎 | 亚洲产国偷V产偷V自拍色戒| 免费成人在线电影| 亚洲国产高清在线精品一区| 无码视频免费一区二三区| 男男黄GAY片免费网站WWW| 亚洲日韩精品一区二区三区 | 成年女人喷潮毛片免费播放| 国产综合成人亚洲区| 曰韩亚洲av人人夜夜澡人人爽 | 亚洲阿v天堂在线| 100000免费啪啪18免进| 亚洲女同成av人片在线观看| 95免费观看体验区视频| 亚洲老熟女五十路老熟女bbw| 国产精品免费小视频| 亚洲成a人片在线不卡一二三区| 亚洲精品成人久久久| 中文字幕成人免费视频| 疯狂做受xxxx高潮视频免费| 亚洲成a人片在线观看中文动漫 | 成人免费无码视频在线网站| 九九久久国产精品免费热6|