Czy powinniśmy przełączyć się domyślnie na asynchroniczne I / O?

Biorąc pod uwagę zalety async I / O i teraz jest dość łatwo kodować i komponować (używając metod Await i TAP), zastanawiam się, czy powinniśmy domyślnie użyć asynchronizacji i dostroić się do wydajności, używając synchronizacji, gdy jest to potrzebne.

Async I / O zwalnia wywołujący wątek i pozwala na zrobienie czegoś innego w oczekiwaniu na wynik. Z drugiej strony asynchroniczne we / wy jest trochę wolniejsze niż synchronizacja.

Aby wymusić responsywne interfejsy użytkownika, projektanci WinRT uznali za dopuszczalne oferowanie metod tylko asynchronicznych.

AFAIK Plik we / wy systemu Windows jest asynchroniczny. Patrząc na to naiwnie, nie jest dla mnie jasne, dlaczego plik asynchroniczny i / O w .NET powinien być wolniejszy niż synchronizacja.

Zasadniczo preferuję prostotę i solidność i tylko dostrojenie do wydajności tam, gdzie jest to konieczne. W przeszłości używaliśmy domyślnie synchronizacji z wyjątkiem wywoływania niektórych usług i tam, gdzie platformy takie jak telefon wymuszały asynchronizację. Rzadko dostrajaliśmy za pomocą async.

questionAnswers(2)

yourAnswerToTheQuestion