Wie unterschiedlich ist die asynchrone Programmierung von Threads?

Ich habe einiges gelesenasync Artikel hier:http://www.asp.net/web-forms/tutorials/aspnet-45/using-asynchronous-methods-in-aspnet-45 und der Autor sagt:

Wenn Sie asynchron arbeiten, verwenden Sie nicht immer einen Thread. Wenn Sie beispielsweise eine asynchrone Webdienstanforderung stellen, verwendet ASP.NET keine Threads zwischen dem asynchronen Methodenaufruf und der Wartezeit.

Also, was ich zu verstehen versuche, ist, wie es wirdasync Wenn wir keine Threads für die gleichzeitige Ausführung verwenden? Was bedeutet es, dass Sie nicht immer einen Thread verwenden?

Lassen Sie mich zunächst erklären, was ich über das Arbeiten mit Threads weiß (Ein kurzes Beispiel: Threads können hier in anderen Situationen als der Benutzeroberfläche und der Worker-Methodik verwendet werden)

Sie haben einen UI-Thread, der Eingaben und Ausgaben übernimmt.Sie können mit Dingen im UI-Thread umgehen, aber die Benutzeroberfläche reagiert nicht mehr.Nehmen wir also an, wir haben eine Stream-bezogene Operation und müssen irgendeine Art von Daten herunterladen.Wir erlauben den Benutzern auch, andere Dinge zu tun, während sie heruntergeladen werden.Wir erstellen einen neuen Worker-Thread, der die Datei herunterlädt und die Fortschrittsanzeige ändert.Sobald es erledigt ist, gibt es nichts mehr zu tun, so dass der Thread getötet wird.Wir fahren vom UI-Thread fort.

Abhängig von der Situation können wir entweder auf den Arbeitsthread im UI-Thread warten, aber bevor die Datei heruntergeladen wird, können wir andere Dinge mit dem UI-Thread tun und dann auf den Arbeitsthread warten.

Ist das nicht dasselbe fürasync Programmierung? Wenn nicht, was ist der Unterschied? Ich lese dasasync Programmierung verwendetThreadPool Fäden abziehen.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage