2013-05-02 28 views
0

我正在学习ASP .NET中的异步操作。我在这里找到一篇文章MSDN。代码有效,但我希望能够在漫长的过程中更新UI。它只显示过程结束后的结果。我在AsyncClass中使用了与上述链接相同的代码。这里是代码:PageAsyncTask更新UI

  AsyncTask slowTask1 = new AsyncTask(); 
      PageAsyncTask task = new PageAsyncTask(slowTask1.OnBegin, slowTask1.OnEnd, slowTask1.OnTimeout, "Async1", true); 
      Page.AsyncTimeout = new TimeSpan(0, 0, 5); 
      Page.RegisterAsyncTask(task); 
      // Page.ExecuteRegisteredAsyncTasks(); 
      IAsyncResult result = slowTask1.OnBegin(this.Page,null,null,null); 

      WaitHandle waitHandle = result.AsyncWaitHandle; 
      waitHandle.WaitOne(2000, false); 

      if(result.IsCompleted) 
      { 
       slowTask1.OnEnd(result); 
       lbProgress.Text = slowTask1.GetAsyncTaskProgress(); 
       Thread.Sleep(1000); 
      } 
      else 
      lbProgress.Text = slowTask1.GetAsyncTaskProgress(); 

回答

0

你不能从后面的代码。而响应发送到request/response结束的客户端。因此,如果您需要等待Async操作的结果(以某种方式用于响应)并仍然需要更新页面,请使用AJAX并从客户端拉取数据。