<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片在线观看网站| 国产精品成人免费综合| 精品亚洲456在线播放| 国产一级淫片免费播放| 日韩电影免费在线观看网站| 中中文字幕亚洲无线码| 国产成人精品日本亚洲专区| 最近免费中文字幕大全高清大全1| 亚洲人成网站999久久久综合| 国产精品V亚洲精品V日韩精品 | 亚洲精品中文字幕无码AV| 女人张腿给男人桶视频免费版 | 91成人免费福利网站在线| 久久精品亚洲AV久久久无码| 亚洲一级特黄无码片| 青青草a免费线观a| 巨胸狂喷奶水视频www网站免费| 亚洲AV无码一区二区三区在线| 国产亚洲精品成人AA片新蒲金| 欧美a级在线现免费观看| gogo免费在线观看| 亚洲一区二区三区成人网站| 精品亚洲一区二区| 全部免费国产潢色一级 | 亚洲精品无码Av人在线观看国产| 四虎永久在线精品免费网址| 久草视频在线免费看| 春意影院午夜爽爽爽免费| 亚洲人精品亚洲人成在线| 亚洲av无码精品网站| 一本久久综合亚洲鲁鲁五月天| 18勿入网站免费永久| 中文字幕免费视频精品一| 亚洲AV无码国产一区二区三区| 亚洲美女大bbbbbbbbb| 亚洲宅男天堂在线观看无病毒| 免费一级毛片不卡不收费| 永久免费av无码网站韩国毛片| 外国成人网在线观看免费视频| 亚洲精品视频免费观看| 无码毛片一区二区三区视频免费播放 |