[英]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.