Freigeben über


Asynchroner Vorgang

Die Zeitspanne, in der eine Anwendung auf eine Internetressource zugreifen kann, hängt von einer Reihe von Faktoren ab, z. B. der verwendeten Verbindung, dem Server, auf dem sich die Ressource befindet, und der Anzahl der Benutzer, die auf die Ressource zugreifen möchten. Für Anwendungen, die mehrere Ressourcen herunterladen oder mehrere Aufgaben (einschließlich eines oder mehrerer Downloads) verarbeiten, kann es äußerst ineffizient sein, auf jeden Download zu warten, bevor der Nächste Vorgang ausgeführt wird. Um die Zeitspanne zu verringern, die eine Anwendung warten muss, können viele winINet-Funktionen asynchron ausgeführt werden.

Im asynchronen Modus kann eine Anwendung jede Funktion ausführen, die einen Kontextwert als einen seiner Parameter enthält, und andere Befehle oder Funktionen weiterhin ausführen können, während die Anwendung wartet, bis die Funktion die Aufgabe abgeschlossen hat. Während der Vorgang abgeschlossen wird, wird eine Statusrückruffunktion, die von der Anwendung bereitgestellt wird, über den Fortschritt der Aufgabe und nach Abschluss benachrichtigt. Zurzeit kann die Statusrückruffunktion andere Funktionen aufrufen oder andere erforderliche Aufgaben ausführen, die vom Abschluss der Aufgabe abhängig waren.

Es gibt keine Rückrufthreadafinität, wenn Sie WinINet asynchron aufrufen: Ein Aufruf kann von einem Thread gestartet werden, aber jeder andere Thread kann den Rückruf empfangen.

Nützt

Es gibt mehrere Vorteile für die asynchrone Bedienung. Zum Beispiel:

  • Gleichzeitiges Herunterladen mehrerer Internetressourcen.

    Sie können gleichzeitig eine Verbindung mit mehreren Internetressourcen herstellen und sie herunterladen, sobald sie verfügbar sind.

  • Steigerung der Leistung Ihrer Anwendung.

    Eine Anwendung, die die WinINet-Funktionen verwendet, muss asynchron nicht warten, bis die Anforderung abgeschlossen ist. Daher kann die Anwendung andere Aufgaben ausführen, die nicht von der Anforderung abhängig sind, wodurch die Gesamtleistung der Anwendung verbessert wird.

  • Überwachen Sie den Fortschritt des Downloads.

    Die Statusrückruffunktion empfängt Benachrichtigungen, während sie eine Anforderung verarbeitet. Bei Bedarf kann Ihre Anwendung die von dieser Statusrückruffunktion bereitgestellten Informationen verwenden, um den Benutzer über den Fortschritt des Vorgangs auf dem Laufenden zu halten oder um Anforderungen zu unterbrechen, die zu lange dauern.

Drehbücher

Angenommen, Ihre Anwendung muss Kaffeepreise aus dem Downfall Coffee & Tea und den Fourth Coffee Sites herunterladen und Preise vergleichen. Die Fourth Coffee-Website hat in der Regel eine langsamere Reaktionszeit, sodass Ihre Anwendung zuerst die Informationen von Downfall Coffee & Tea herunterladen sollte.

Es werden zwei Versionen der Anwendung entwickelt. Man arbeitet synchron und lädt zuerst die Preise von der Downfall Coffee & Tea Site und dann die Preise von der Fourth Coffee Site herunter. Die zweite funktioniert asynchron und sendet Anforderungen an beide Websites und lädt die Preise herunter, sobald sie verfügbar sind.

In der folgenden Tabelle wird veranschaulicht, was passieren würde, wenn die Vierte Kaffeewebsite an einem bestimmten Tag schneller war.

Ereignis Synchrone Version Asynchrone Version
Anfangen Anfrage an Downfall Coffee & Tee senden Senden von Anfragen an Downfall Coffee & Tee und Vierter Kaffee
Anforderung von der asynchronen Version an Fourth Coffee abgeschlossen Warten Downloadpreise von Fourth Coffee
Anfrage nach Downfall Coffee & Tee abgeschlossen Downloadpreise von Downfall Coffee & Tee Downloadpreise von Downfall Coffee & Tee
After Downfall Coffee & Tea es preise werden heruntergeladen Anfrage an Fourth Coffee senden Preise vergleichen
Der Vergleich der asynchronen Version wurde abgeschlossen. Warten Vorgang abgeschlossen
Anforderung von der synchronen Version an Fourth Coffee abgeschlossen Downloadpreise von Fourth Coffee n/a
Nachdem die Preise von Fourth Coffee heruntergeladen wurden Preise vergleichen n/a
Der Vergleich der synchronen Version wurde abgeschlossen. Vorgang abgeschlossen n/a

 

Ein weiteres Beispiel wäre ein Webbrowser wie Microsoft Internet Explorer. Wenn der Browser eine Seite herunterlädt, muss sie häufig andere Ressourcen herunterladen, z. B. Bilder und Audiodateien. Im asynchronen Modus können die Seite und die zugehörigen Ressourcen gleichzeitig angefordert und heruntergeladen werden, sobald sie verfügbar sind, anstatt die Seite und jede Ressource einzeln anzufordern und herunterzuladen.

Nachfolgend sind verwandte Links aufgeführt.

Tutorials

Zum Einrichten eines asynchronen Vorgangs erforderliche Funktionen

Funktionen, die asynchron verwendet werden können

Anmerkung

Das FtpCreateDirectory, FtpRemoveDirectory, FtpSetCurrentDirectory, FtpGetCurrentDirectory, FtpDeleteFileund FtpRenameFile Funktionen verwenden den Kontextwert, der im Aufruf der Funktion InternetConnect bereitgestellt wird.

 

Anmerkung

WinINet unterstützt keine Serverimplementierungen. Darüber hinaus sollte sie nicht von einem Dienst verwendet werden. Verwenden Sie für Serverimplementierungen oder -dienste Microsoft Windows HTTP Services (WinHTTP).