Mamy usługę aktualizacji informacji o klientach na serwer. Jedna rozmowa serwisowa trwa kilka sekund, co jest normalne.Ogień i zapomnij (Asynch) Wywołanie metody ASP.NET
Teraz mamy nową stronę, gdzie w jednym przypadku około 35-50 Informacje o klientach mogą być aktualizowane. Zmiana interfejsu serwisowego w celu akceptacji wszystkich klientów nie wchodzi w rachubę.
Potrzebuję wywołać metodę (np. "ProcessCustomerInfo"), która będzie wyświetlać informacje o kliencie i wywoływać serwis WWW 35-50 razy. Wywołanie usługi asynchronicznie nie jest zbyt użyteczne.
Muszę asynchronicznie wywołać metodę "ProcessCustomerInfo". Próbuję użyć do tego celu RegisterAsyncTask. W Internecie dostępne są różne przykłady, ale problem występuje po zainicjowaniu tego połączenia, jeśli odejdę od tej strony, przetwarzanie zostanie przerwane.
Czy można zrealizować wywołanie metody Fire and Forget, aby użytkownik mógł odejść (Przekierowanie na inną stronę) ze strony bez zatrzymywania przetwarzania metody?
Dzięki Joel! Widziałem tę metodę wcześniej, ale ignorowałem, ponieważ MethodInvoker jest częścią System.Windows.Form. Wydaje się, że działa dobrze z Przekierowaniem, chociaż muszę wykonać więcej testów. Ale czy powinienem używać tej metody dla ASP.NET? Czy istnieje alternatywa dla tego Web? – BinaryHacker
Ups, przepraszam za to. To by działało dobrze z ASP.NET, ale byłoby wstyd, gdyby trzeba włączyć System.Windows.Form do projektu, jeśli nie musisz. Zamiast tego możesz utworzyć własnego delegata i użyć go zamiast metody MethodInvoker. Zaktualizowałem próbkę kodu powyżej. –
MethodInvoke jest już tylko delegatem dla ciebie bez parametrów lub wartości zwracanych, dzięki czemu nie musisz poświęcać czasu na tworzenie własnych. ProcessCustomerInfoDelegate, który właśnie stworzyliśmy, działa dokładnie w ten sam sposób. –