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:
- 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.
- 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).
- Zdarzenia można podsumować w interfejsach API zwracanych przez zadania i czekać na nie. Może to znacznie uprościć kod.
- 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
- 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.
- 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.
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:
- 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.
- 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).
- Zdarzenia można podsumować w interfejsach API zwracanych przez zadania i czekać na nie. Może to znacznie uprościć kod.
- 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
- 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.
- 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.
Chcesz przesłać opinię? Prześlij problem tutaj.