За интранет приложение имам функция за запазване на уеб страница, която може да доведе до значително действие върху няколко таблици на база данни. Използвам Linq2SQL и около 20 секунди неактивен браузър се поглъщат от 3 отделни Linq.DataContext.SubmitChanges()
извиквания. Тези извиквания се случват точно в края на кода, извикан от обратното изпращане на SaveButton.
Искам действителната работа, необходима за натрупване на тези промени в базата данни, да се извърши в рамките на действието на бутона за запазване. Въпреки това, като се има предвид, че не са открити проблеми или конфликти, бих искал да пренасоча потребителя към друга страница веднага след това (за да не се налага да се взират в екрана, правейки нещо, което не могат да спрат. След това, докато потребителят продължава, бих искал обадете се на всички SubmitChanges()
.
Идеален работен процес:
void btnSaveClick()
{
CalculateChangeSetProcedure
Redirect somewhere...
SubmitChangesProcedure
}
Така че моят проблем е Response.Redirect(..., true) просто ще изключи нещата. Има ли някакъв начин да направя това с ASP.NET процедури или ще трябва да го направя async в друга нишка?