Я планирую реализовать TPL в существующем приложении asp.net для повышения производительности. Я реализую их в выборочных местах (например, звонки для записи данных в одну таблицу и какие-то нерелевантные и несинхронические операции), и мы обрабатываем все необработанное исключение в событии application_error в файле global.asax.TPL Exception - Как подключиться к основной теме
Но когда я получаю сообщение об ошибке, TPL не бросает эту ошибку в событие application_error. Когда я попытался с Task.WaitAll(t1)
, то его бросание в событие app_error, но его время для обработки написанного кода. Но когда я пытаюсь использовать следующий метод (потребуется некоторое время только тогда, когда возникла ошибка), то и его не выбрасывание исключения в основной поток.
Task.Factory.StartNew(Sub(mainContext)
HttpContext.Current = mainContext
LookUpRepository.AddItems(CurrentContext.LoggedInUser.UserID, ClientID)
End Sub, HttpContext.Current).ContinueWith(Sub(tplException)
For Each ex In tplException.Exception.InnerExceptions
Throw ex
Next
End Sub, TaskContinuationOptions.OnlyOnFaulted Or TaskContinuationOptions.ExecuteSynchronously)
Я попытался с ConcurrentQueue
поймать exceotion и иногда останавливает applcation и контроль не идет дальнейший код.
Так как я могу прикрепить исключение TPL к основному потоку, на котором размещается приложение asp.net.