0

実行に約 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;
    }
}
4

1 に答える 1