Jak czeka praca asynchroniczna w C # [zamknięte]

Próbuję zrozumieć, jak oczekiwać asynchronicznej pracy w C # i jedna rzecz bardzo mnie myli. Rozumiem, że każda metoda używająca słowa kluczowego await musi być oznaczona async. Rozumiem, że gdy trafi się linia ze słowem oczekującym, kod poniżej tej linii nie zostanie wykonany. Rozpoczyna się operacja asynchroniczna na instrukcji w linii oczekującej, a kontrola jest zwracana do metody wywołującej, która może kontynuować wykonywanie.

Pytanie 1: Czy to założenie jest poprawne, czy kod poniżej słowa kluczowego await jest nadal wykonywany?

Po drugie załóżmy, że wywołałem asynchroniczną metodę usługi i muszę zwrócić jej wynik. Instrukcja return znajduje się poniżej słowa kluczowego await.

Pytanie # 2: Kiedy zostanie zwrócona instrukcja return, po zakończeniu asynchronicznego wywołania lub przed nim?

Pytanie # 3: Chcę użyć wyniku tego wywołania usługi, a operacja asynchroniczna nie pomoże, ponieważ chcę, aby metoda wywołania została trafiona, gdy wynik zostanie zwrócony. Rozumiem, że można to zrobić za pomocą właściwości Result, która powoduje synchronizację połączenia. Ale w jaki sposób korzysta się z async w operacjach DB, ponieważ w większości aplikacji zajmują one 80% czasu.

Pytanie 4: Jak mogę używać asynchronizacji z operacjami DB? Czy jest to możliwe i zalecane?

Pytanie # 5: W którym scenariuszu przydatne będą operacje asynchroniczne, wydaje się, że każdy api wykonuje teraz asynchroniczne operacje bez żadnego powodu? czy pominąłem cel korzystania z asynchronicznych operacji?

Mówiąc, że api robią metody asynowe bez powodu, to dlatego, że metody muszą coś zwrócić i dopóki nie zostanie obliczone, jak mogą powrócić, więc w istocie połączenie nie będzie blokowało w sensie, że będzie bezużyteczne, dopóki wynik jest zwracany?

questionAnswers(2)

yourAnswerToTheQuestion