ICANN认证国际域名顶级注册机构
网站建设,域名注册,空间租用,软件销售,广告设计 域名注册,空间租用, 网站建设,东莞网页设计,域名注册,网站推广,网站开发,网页设计 网站推广,,百度推广,新浪推广,雅虎推广,网易推广 标志设计,画册设计,包装设计,VI策划,企业形象顾问 连邦软件加盟店,提供销遥行,管家婆,速达,用友ERP,诺顿等软件报价及销售 建站必读 腾达网络,上网帮助中心, 腾达为东莞等地,提供网站建设,网站推广,广告设计,软件销售等优质服务!
建站必读


 
 
当前位置:首页 -> 建站必读 -> .NET技术
服务器端异步 Web 方法(二)
简单的异步 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);



}



}


 
 
本站关键词:
|东莞财务软件|东莞ERP软件|东莞电脑维护|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划||东莞财务软件|东莞ERP软件|东莞电脑维护|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划||东莞财务软件|东莞ERP软件|东莞电脑维护|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划||东莞财务软件|东莞ERP软件|东莞电脑维护|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划||东莞财务软件|东莞ERP软件|东莞电脑维护|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划||东莞财务软件|东莞ERP软件|东莞电脑维护|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划||东莞财务软件|东莞ERP软件|东莞电脑维护|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划||东莞财务软件|东莞ERP软件|东莞电脑维护|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划||东莞财务软件|东莞ERP软件|东莞电脑维护|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|
域名注册 | 虚拟主机 | 网站建设 | 网站推广 | 广告设计 | 帮助中心 | 软件中心 | 关于腾达
东莞市腾达信息工程有限公司      本站网络实名: 东莞网站建设
地址:东莞市新城市中心区第一国际B座610   邮编:523007
电话:0769-22026071 22026072 传真:0769-22026076 24小时服务热线:13712032014
© 2002~2005 腾达网络   版权所有