<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人在线视| 成人爽a毛片免费| 亚洲AV无码一区二区乱子伦| 两性色午夜视频免费网| 国产亚洲精久久久久久无码77777| 国产精品免费大片一区二区| 国产亚洲精品精品国产亚洲综合| 久久久精品国产亚洲成人满18免费网站 | 亚洲字幕AV一区二区三区四区| 国内免费高清在线观看| 亚洲日本中文字幕天天更新| 免费在线看片网站| 亚洲精品视频免费| 亚洲视频在线视频| 亚洲免费闲人蜜桃| 亚洲日本VA午夜在线影院| 国产免费人人看大香伊| 成人国产精品免费视频| 亚洲人成电影在在线观看网色| 波多野结衣在线免费观看| 亚洲Av永久无码精品黑人| 久久99亚洲综合精品首页| 日韩午夜理论免费TV影院| 亚洲色偷偷色噜噜狠狠99| 亚洲av区一区二区三| 免费人成网站在线观看不卡| 亚洲最新中文字幕| 国产乱人免费视频| 日本免费污片中国特一级| 亚洲成人黄色网址| 免费大片在线观看网站| 午夜网站在线观看免费完整高清观看 | 国产午夜无码精品免费看| 亚洲18在线天美| 亚洲男人第一无码aⅴ网站| 亚洲精品免费视频|