人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

服務器端異步 Web 辦法(二)

服務器端異步 Web 辦法(二)

更新時間:2022-10-01 文章作者:未知 信息來源:網絡 閱讀次數:

簡單的異步 Web 方法

為舉例說明異步 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);

}

}

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 府谷县| 聂荣县| 澳门| 金堂县| 大城县| 苗栗县| 德钦县| 梅河口市| 从江县| 高唐县| 泌阳县| 林甸县| 略阳县| 石楼县| 盐津县| 天全县| 晋州市| 崇文区| 博爱县| 茂名市| 始兴县| 兴海县| 思南县| 吴旗县| 沛县| 吴江市| 洛川县| 彭州市| 嘉鱼县| 桑日县| 隆化县| 大城县| 广州市| 拜泉县| 绥化市| 平远县| 赞皇县| 行唐县| 苏尼特右旗| 土默特右旗| 聂荣县|