【发布时间】:2016-04-05 21:39:42
【问题描述】:
我正在尝试构建一个页面,该页面允许用户启动存储过程,然后继续使用站点的其余部分,而无需等待该过程完成。
我已经尝试为此调用创建一个后台工作线程和一个辅助 EDMX,但目前该站点在代码运行时仍然没有响应(通常需要一到两分钟)。
protected void SaveReversal_Click(object sender, EventArgs e)
{
if (PeriodList.SelectedValue != "")
{
var bw = new BackgroundWorker();
bw.DoWork += new DoWorkEventHandler(AsyncReverseDataload_DoWork);
bw.WorkerReportsProgress = false;
bw.WorkerSupportsCancellation = false;
bw.RunWorkerAsync(Convert.ToInt32(PeriodList.SelectedValue));
}
}
private void AsyncReverseDataload_DoWork(object sender, DoWorkEventArgs e)
{
int TrackerDetailKey = (int)e.Argument;
using (AsyncEntities ar = new AsyncEntities())
{
IObjectContextAdapter dbcontextadapter = (IObjectContextAdapter)ar;
dbcontextadapter.ObjectContext.CommandTimeout = 600;
try
{
var results = ar.ReverseDataload(TrackerDetailKey);
}
catch (Exception ex)
{
Console.Write(ex.ToString());
}
}
}
如何让这个程序实际运行,以便在开始执行存储过程后网站仍然响应用户?
【问题讨论】:
-
使方法异步?
标签: c# asp.net stored-procedures asynchronous entity-framework-6