Я пытаюсь создать страницу, которая позволяет пользователю запускать хранимую процедуру, а затем продолжать использовать остальную часть сайта, не дожидаясь завершения этого процесса.
Я попытался создать рабочий рабочий поток и вторичный EDMX только для этого вызова, но в настоящее время сайт по-прежнему остается неактуальным во время запуска кода (обычно занимает от одной до двух минут).Запуск ASP.NET Entity Framework 6 хранимой процедуры асинхронно
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());
}
}
}
Как я могу получить это на самом деле работает так, что сайт остается отзывчивым к пользователю после начала выполнения хранимой процедуры?
Сделать метод асинхронным? –