Web Service 异步调用
来源:互联网 发布:js entertainment选拔 编辑:程序博客网 时间:2024/05/16 18:06
Web Service 异步调用
最近在完成一些与Socket 通讯相关的东西,希望能够将Socket 通讯的结果以Web Service 的形式发布出来,但是由于Socket 通讯是异步的,所以想当然的认为Web Service 应该异步返回,于是去搜索了一些资料。收集回来才发现有误。但是却是很好的例子代码,现摘录如下:
在.net1.x中,异步WebService异步调用的一般方式为调用方法XX对应的BeginXX方法来完成,其过程类似于异步委托的使用。
体验.NET 2.0的优雅之异步Web服务调用
在.net2.0中(准确的说是vs.net 2005中),异步WebService异步调用的方式的例子:
void DoSomethingTest()
{
localhost.Service service = new WindowsApp.localhost.Service();
service.HelloWorldCompleted += new WindowsApp.localhost.HelloWorldCompletedEventHandler(service_HelloWorldCompleted);
// do Asyn calling here
service.HelloWorldAsync();
}
void service_HelloWorldCompleted(object sender, WindowsApp.localhost.HelloWorldCompletedEventArgs e)
{
if (e.Error == null)
{
MessageBox.Show(e.Result);
}
else
{
MessageBox.Show(e.Error.Message);
}
}
服务器端代码
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld() {
return "Hello public Service () {}
World";
}
}
很简单,没有了AsyncCallback、IAsyncResult 这两个烦人的东西,调用的代码变得简洁、优雅了,而且可以从e.Result得到强类型的返回值(上例为"Hello World")。但是,有兴趣的话,可以看看vs.net2005生成的Referance.cs文件,那可比2003中的复杂很多。其中可以看到 System.ComponentModel.AsyncCompletedEventArgs 、 System.Threading.SendOrPostCallback(delegate)这两个在 .net 1.x 中没有的“怪物”,估计用到的地方还不止WebService客户端。
源文档 <http://cache.baidu.com/c?word=web%2Cservice%2C%D2%EC%B2%BD&url=http%3A//www%2Ecppblog%2Ecom/guohan/archive/2006/01/09/2500%2Easpx&b=58&a=17&user=baidu>
- Web Service 异步调用
- 异步调用Web Service
- 异步调用Web Service
- 异步调用xml web service
- Web Service 的异步调用
- 实现异步调用Web Service
- 实现异步调用 Web Service
- 异步调用Web Service的方式
- xml web service 中的异步调用
- web service实现原理与异步调用
- web service实现原理与异步调用
- iPhone开发中如何异步调用web service
- XML Web Service的异步调用中可能的问题
- XML Web Service并发异步调用的问题及其解决方案
- iPhone开发中如何异步调用web service
- 实现异步调用web service,防止超时现象
- 二把刀:异步调用web service并返回结果
- Axis2 创建 web service (2) : 同步异步调用
- WebService传输DataSet的一点想法和实践
- WEB Service test
- 压缩传输
- .NET 2.0远程传输数据集的优化方法
- JDK API方面问题连载
- Web Service 异步调用
- Windows Forms 实现安全的多线程详解(附带程序代码示例)
- Examples of The RR Date Format
- 加密配置节
- 在MonthCalendar控件中选中日期
- 世界仅需要五台计算机
- SharpDevelop代码分析
- SharpDevelop Addin(插件树) 使用方法
- 独立软件开发商,出路何在?