繁体   English   中英

asp.net PageAsyncTask不是异步运行的

[英]asp.net PageAsyncTask not running asynchronously

我有一个PageAsyncTask,大约需要2分钟才能运行。 我的页面指令有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;
    }
}

我误解了这是关于什么的。 我刚刚为该任务创建了一个新线程,因为该任务的主要目的是将记录插入到数据库中,并且我的页面上有一个gridview,使用ajax读取数据库,显示进度。 因此,当线程正在工作时,您可以看到记录计数上升。

Thread myThread = new Thread(new ParameterizedThreadStart(task.Run));
myThread.Start(extra);

谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM