実行に約 2 分かかる PageAsyncTask があります。私のページ ディレクティブには Async="true" があり、構成のタイムアウトは 180 (余分な時間を与えるために 3 分) ですが、 Page.ExecuteRegisteredAsyncTasks() を呼び出すと、すぐに戻ってこず、実行中にブロックされます。仕事。
これを非同期で実行するための手順がありませんか?
(これはより適切にフォーマットされましたが、編集後にすべてが台無しになりました)
// in my button click event
MyTask task = new MyTask();
PageAsyncTask asyncTask = new PageAsyncTask(task.OnBegin, task.OnEnd, task.OnTimeout);
Page.RegisterAsyncTask(asyncTask);
Page.ExecuteRegisteredAsyncTasks();
// MyTask.cs
public class MyTask
{
protected delegate void AsyncTaskDelegate();
private AsyncTaskDelegate dlgt;
public void Run() { // my code that hits DB }
public IAsyncResult OnBegin(object sender, EventArgs e, AsyncCallback cb, object extra)
{
dlgt = new AsyncTaskDelegate();
IAsyncResult result = dlgt.BeginInvoke(extra, cb, null);
return result;
}
}