<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
    主站蜘蛛池模板: 怡红院亚洲红怡院在线观看| 亚洲国产高清视频在线观看| 女同免费毛片在线播放| 免费在线观看亚洲| 亚洲午夜福利在线视频| 皇色在线视频免费网站| 亚洲免费黄色网址| 大陆一级毛片免费视频观看i| 亚洲一区二区三区国产精华液| 国产片AV片永久免费观看| 亚洲人精品亚洲人成在线| 四虎免费在线观看| 男男黄GAY片免费网站WWW| 亚洲国产91精品无码专区| 99久久免费国产精精品| 日木av无码专区亚洲av毛片| 性xxxxx免费视频播放| 亚洲成av人无码亚洲成av人| 亚洲国产成人久久综合区| 视频免费在线观看| 亚洲成人动漫在线观看| 日韩成全视频观看免费观看高清| 色婷婷六月亚洲综合香蕉| 久久亚洲高清综合| 最近免费最新高清中文字幕韩国| 久久精品国产亚洲av麻豆蜜芽| 国产免费人成在线视频| 国产免费久久精品99久久| 亚洲高清中文字幕| 免费看AV毛片一区二区三区| 国产福利电影一区二区三区,免费久久久久久久精| 中文字幕亚洲一区二区va在线| 精品一区二区三区免费毛片爱| 四虎必出精品亚洲高清| 不卡一卡二卡三亚洲| 精品福利一区二区三区免费视频| 亚洲av中文无码乱人伦在线观看| 亚洲色成人网站WWW永久| 久久这里只有精品国产免费10| 手机永久免费的AV在线电影网| 色婷婷六月亚洲婷婷丁香|