Tak, ponieważ umożliwia serwerowi przetwarzanie innych żądań podczas oczekiwania na zakończenie operacji we/wy, tj. pozwalasz tej samej liczbie wątków na obsługę większej liczby żądań.
Również wymuszanie synchronizacji przy użyciu .Result
lub .Wait()
jest niebezpieczne, ponieważ wpadniesz w zakleszczenia
jeśli nie zrobisz tego dobrze.
asynchroniczny oznacza tylko, że serwer może użyć wątku do czegoś innego pomiędzy; jest to w dużej mierze przejrzyste, tzn. Twój kod nie musi się zbytnio przejmować. Ze względów praktycznych po prostu wywołaj await InsertOneAsync(...)
lub jakąkolwiek metodę sterownika MongoDB, którą wywołujesz.
Async to dość „zakaźna” funkcja:aby efektywnie korzystać z funkcji asynchronicznej, cały kod musi sobie z nią radzić.