Odcinek

Six Essential Wskazówki for Async — wprowadzenie

Asynchroniczne obejmuje kilka nowych pojęć. Nie są trudne; po prostu nieznane. W ciągu ostatniego roku Lucian Wischik obserwował, jak ludzie używają async/await w języku C# i VB. Ta seria odchyli trzy najważniejsze wzorce asynchroniczne i anty-wzorce oraz trzy najważniejsze wskazówki dotyczące pisania własnych bibliotek asynchronicznych.

Porady:

  1. Async void jest przeznaczony tylko dla programów obsługi zdarzeń najwyższego poziomu i podobnych do zdarzeń. Nie używaj go w innym miejscu w kodzie.
  2. Istotne jest odróżnienie pracy powiązanej z procesorem CPU (należy wykonać w puli wątków) od pracy powiązanej z operacją we/wy (co nie jest potrzebne).
  3. Zdarzenia można podsumować w interfejsach API zwracanych przez zadania i czekać na nie. Może to znacznie uprościć kod.
  4. Metody biblioteki asynchronicznej nie powinny kłamać: nie powinny używać elementu Task.Run wewnętrznie w wpisie tajnym i powinny uwidaczniać sygnaturę asynchroniczną, jeśli i tylko wtedy, gdy ich implementacja jest asynchroniczna
  5. Metody biblioteki asynchronicznych powinny zawierać fragmenty asynchronicznych interfejsów API, które nie są czatty. Jeśli jednak czatty jest nieunikniony, dowiedz się więcej o tych mikro optymalizacjach, aby zmniejszyć nakłady alokacji sterty.
  6. Metody biblioteki asynchronicznych powinny rozważyć zadanie. ConfigureAwait(false), aby zmniejszyć ich wpływ na kolejkę komunikatów interfejsu użytkownika.

Jeśli rozumiesz podstawowy przepływ sterowania w metodzie asynchronicznej, wszystkie te trzy punkty naturalnie wchodzą w miejsce. W tym pierwszym filmie wideo z wprowadzeniem wyjaśniono, że przepływ sterowania.

Slajdy i kod źródłowy są dostępne na blogu Luciana.

C#