ASP.NET网页编程之教程:利用WebService举行异步通讯
据说很厉害,甚至可以把C#也干掉^_^,不过也很复杂,本来C++已经够复杂的。有人甚至还提出把这个东东引进标准,我觉得基本上不可能的。web|教程|异步 一般在WEB使用程序中不会思索到这个需求。做智能客户真个时分,当用到WebService时,因为服务器处置速率、收集传输速率等各类缘故原由会使一个WebService从哀求入手下手到取得呼应了局之间守候一段工夫,这时候候线程会处于堵塞形态,程序会守候哀求了局招致客户端没法举行其他的举措或处置。这时候候就必要异步的利用WebService。最简单被想到的办法固然是创建一个新的线程来实行WebService的哀求并取得了局,如许就能够不影响程序的主线程的事情,而且也十分简单完成,可是在一个庞大的使用程序中,用户大概会同时哀求多个webservice,这时候候就得创立并把持多个线程。多线程的把持固然能够完成很好的使用程序,但难度是对照年夜的,并且很简单引发非常。
在.net的SDK中实践上就有关于异步伐用webservice的先容和示例。其次要的事情道理和流程以下:
办法1、
privatevoidbutton_Click_(objectsender,System.EventArgse)
{
//为一个Webservice的代办署理类创立一个实例
asy.asynchronismsomeWS=newasy.asynchronism();
//创立一个异步回调工具,机关函数的参数为回调的办法,该回调的办法必需包括一个异步操纵形态范例的参数
System.AsyncCallbackcb=newAsyncCallback(showmsg);
//入手下手举行异步通讯,一般界说一个IAsyncResult异步操纵形态范例的变量来吸收入手下手异步通讯办法所前往的通讯形态
//经由过程这个操纵形态的实例就能够把握以后通讯形态。
//如:System.IAsyncResultar=someWS.BeginHelloWorld(cb,someWS);
someWS.BeginHelloWorld(cb,someWS);
}
voidshowmsg(IAsyncResultar)//必需要有一个IAsyncResult范例的参数
{
//界说一个代办署理类的范例的变量吸收地点回调办法的参数的异步操纵信息
asy.asynchronismsomeWS=(asy.asynchronism)ar.AsyncState;
//该代办署理类实例挪用End</webmethod/>办法来取得WebService的了局
MessageBox.Show(someWS.EndHelloWorld(ar));
}
办法2、
privatevoidbutton_Click_(objectsender,System.EventArgse)
{
//为一个Webservice的代办署理类创立一个实例
asy.asynchronismsomeWS=newasy.asynchronism();
System.IAsyncResultar=someWS.BeginHelloWorld(null,null);
ar.AsyncWaitHandle.WaitOne();
MessageBox.Show(someWS.EndHelloWorld(ar));
}
办法一完成了哀求和吸收异步通讯,使用起来对照天真,事情的办法看起来也很像多线程的操纵体例。
办法二固然也完成了发送哀求和吸收了局异步通讯,可是用在实践的程序中并没有到达所必要的效果。
具体的先容请参看SDK中的形貌
我觉得很重要,一般所说的不重要应该指的是:你学好一种以后再学另一种就很容易了。(因为这样大家可能有一个错觉就是语言不是很重要,只要随便学一种就可以了,其实不是这样的。 是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。 那么,ASP.Net有哪些改进呢? 主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。 Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。 HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了. 是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。 虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。
页:
[1]