Asynchroner Vorgang

Wie lange eine Anwendung für den Zugriff auf eine Internetressource benötigt, hängt von einer Reihe von Faktoren ab, z. B. von der verwendeten Verbindung, dem Server, auf dem sich die Ressource befindet, und von der Anzahl der Benutzer, die versuchen, auf die Ressource zuzugreifen. Für Anwendungen, die mehrere Ressourcen herunterladen oder mehrere Aufgaben (einschließlich eines oder mehrerer Downloads) verarbeiten, kann das Warten auf jeden Download abgeschlossen sein, bevor sie mit der nächsten Aufgabe fortfahren. Um die Wartezeit einer Anwendung zu verringern, können viele WinINet-Funktionen asynchron ausgeführt werden.

Im asynchronen Modus kann eine Anwendung jede Funktion ausführen, die einen Kontextwert als einen ihrer Parameter enthält, und kann weiterhin andere Befehle oder Funktionen ausführen, während die Anwendung wartet, bis die Funktion ihre Aufgabe abgeschlossen hat. Während die Aufgabe abgeschlossen ist, wird eine status Rückruffunktion, die von der Anwendung bereitgestellt wird, über den Fortschritt der Aufgabe und den Abschluss benachrichtigt. Zu diesem Zeitpunkt kann die status Rückruffunktion andere Funktionen aufrufen oder alle anderen erforderlichen Aufgaben ausführen, die von der Ausführung des Vorgangs abhängig waren.

Wenn Sie WinINet asynchron aufrufen, gibt es keinen Rückrufthread: Ein Aufruf kann von einem Thread aus gestartet werden, aber jeder andere Thread kann den Rückruf empfangen.

Vorteile

Es gibt mehrere Vorteile, asynchron zu arbeiten. Beispiel:

  • Gleichzeitiges Herunterladen mehrerer Internetressourcen.

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

  • Steigern der Leistung Ihrer Anwendung.

    Eine Anwendung, die die WinINet-Funktionen asynchron verwendet, muss 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 status Rückruffunktion empfängt Benachrichtigungen, während sie eine Anforderung verarbeitet. Bei Bedarf kann Ihre Anwendung die von dieser status Rü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.

Szenarien

Angenommen, Ihre Anwendung muss Kaffeepreise von den Downfall Coffee & Tea- und den Fourth Coffee-Websites herunterladen und die Preise vergleichen. Die Vierte Kaffee-Website hat in der Regel eine langsamere Antwortzeit, 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-Website herunter und dann die Preise von der Vierten Kaffee-Website. Die zweite funktioniert asynchron, sendet Anforderungen an beide Websites und lädt die Preise herunter, sobald sie verfügbar werden.

Die folgende Tabelle veranschaulicht, was passieren würde, wenn die Vierte Kaffee-Website an einem bestimmten Tag schneller wäre.

Ereignis Synchrone Version Asynchrone Version
Start Anfrage an Downfall Coffee & Tea senden Senden von Anfragen an Downfall Coffee & Tea und Fourth Coffee
Anforderung von der asynchronen Version an Fourth Coffee abgeschlossen Warten Preise von Fourth Coffee herunterladen
Anfrage zum Untergang von Kaffeetee & abgeschlossen Preise herunterladen von Downfall Coffee & Tea Preise herunterladen von Downfall Coffee & Tea
Nach dem Untergang kaffeetee & preise werden heruntergeladen Anfrage an Fourth Coffee senden Preise vergleichen
Vergleich der asynchronen Version abgeschlossen Warten Vorgang abgeschlossen
Anforderung von der synchronen Version an Fourth Coffee abgeschlossen Preise von Fourth Coffee herunterladen
Nachdem die Preise von Fourth Coffee heruntergeladen wurden Preise vergleichen
Synchroner Versionsvergleich abgeschlossen Vorgang abgeschlossen

 

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

Im Folgenden sind verwandte Links aufgeführt.

Tutorials

Funktionen, die zum Einrichten eines asynchronen Vorgangs erforderlich sind

Funktionen, die asynchron verwendet werden können

Hinweis

Die Funktionen FtpCreateDirectory, FtpRemoveDirectory, FtpSetCurrentDirectory, FtpGetCurrentDirectory, FtpDeleteFile und FtpRenameFile verwenden den im Aufruf der InternetConnect-Funktion angegebenen Kontextwert.

 

Hinweis

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