czy może całkowicie zastąpić stary sposób korzystania z wątków?
Nie. Wątek może zrobić o wiele więcej przydatnych rzeczy. Oczekiwanie jest specjalnie zaprojektowane do radzenia sobie z czymś , co wymaga czasu, najczęściej jest to żądanie we / wy. Co tradycyjnie było wykonywane z wywołaniem zwrotnym po zakończeniu żądania we / wy. Pisanie kodu, który opiera się na tych wywołaniach zwrotnych jest dość trudne, czekaj znacznie to upraszcza.
jest w stanie zrobić wszystko, co wątek może zrobić asynchronicznie?
W przybliżeniu. Oczekiwanie zajmuje się tylko opóźnieniem, w przeciwnym razie nie robi nic, co robi wątek. Wyrażenie await , które znajduje się po prawej stronie słowa kluczowego await, jest tym, co wykonuje zadanie. Idealnie byłoby, gdyby w ogóle nie używał wątku, wysyła żądanie sterownika, a gdy sterownik zakończy transfer danych, generuje wywołanie zwrotne z powiadomieniem o zakończeniu. Zdecydowanie najpowszechniejszym zastosowaniem jest połączenie sieciowe, powszechne są opóźnienia rzędu setek milisekund i nieunikniony efekt uboczny przenoszenia usług z komputera stacjonarnego lub sieci LAN do „chmury”. Synchroniczne korzystanie z takich usług spowodowałoby, że interfejs użytkownika nie odpowiadałby.
można używać tylko z niektórymi metodami, takimi jak WebClient.DownloadStringAsync
Nie. Możesz go używać z dowolną metodą, która zwraca zadanie. Metody XxxxAsync () to tylko wstępnie ugotowane metody w środowisku .NET dla typowych operacji, które wymagają czasu. Podobnie jak pobieranie danych z serwera internetowego.