页面只有一个线程,当处理完了之后还会等待异步调用吗?

解决方案 »

  1.   

    可以利用ASP.NET 2.O异步页新特性假设有一个WEB服务的方法[WebMethod(Description = "一个执行时间为2秒的方法")]
    public string LongWork()
    {
        System.Threading.Thread.Sleep(2000);
        return "测试";
    }调用方法如下
    TestWS.MyService service = new TestWS.MyService();
    // 当LongWork操作完成后触发service_LongWorkCompleted事件处理方法
    service.LongWorkCompleted += new TestWS.LongWorkCompletedEventHandler(service_LongWorkCompleted);
    // 开始异步操作
    service.LongWorkAsync();
    // 这里就可以做其它操作了WEB服务异步执行完成会触发service_LongWorkCompleted事件: 
    void service_LongWorkCompleted(object sender, TestWS.LongWorkCompletedEventArgs e)
    {
        Response.Write(string.Format("执行结果:{0}<br/>", e.Result));
    }注意,别忘记为页面启用异步支持
    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" Async="true" %>具体可以参考
    http://msdn.microsoft.com/msdnmag/issues/05/10/WickedCode/
      

  2.   

    http://www.microsoft.com/china/msdn/library/webservices/asp.net/issuesWickedCodetoc.mspx异步调用 Web 服务