1.服务(很简单)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
namespace WebService1
{
/// <summary>
/// Service1 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
System.Threading.Thread.Sleep(10000);
return "Hello World";
}
}
}
2. 客户端(同样很简单)
大家可以比较下面两段代码的区别
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
for (int i = 0; i < 10; i++)
{
client.HelloWorldCompleted += (o1, e1) =>
{
Console.WriteLine("{0}:{1}",DateTime.Now, e1.Result);
};
client.HelloWorldAsync();
}
Console.Read();
}
}
}
--这一种情况,因为client每次都会创建一个新的实例,所以它的工作是合乎要求的,只返回了10个结果。
另外一个写法(这可能是很多朋友会使用的方式)
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
for (int i = 0; i < 10; i++)
{
client.HelloWorldCompleted += (o1, e1) =>
{
Console.WriteLine("{0}:{1}",DateTime.Now, e1.Result);
};
client.HelloWorldAsync();
}
Console.Read();
}
}
}
虽然代码很合理,但是它的工作结果却很奇怪。它返回的结果有70行。