PageAsyncTask更新UI

时间:2013-05-02 03:41:26

标签: c# asp.net multithreading pageasynctask

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

            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();

1 个答案:

答案 0 :(得分:0)

你无法从后面的代码中做到这一点。响应将发送给request/response已结束的客户端。因此,如果您需要等待Async操作的结果(以某种方式用于响应)并仍需要更新页面,请使用AJAX并从客户端提取数据。