Delen via


Asynchrone bewerking

Hoe lang het duurt voordat een toepassing toegang heeft tot een internetresource, is afhankelijk van een aantal factoren, zoals de gebruikte verbinding, de server waarop de resource zich bevindt en het aantal gebruikers dat toegang probeert te krijgen tot de resource. Voor toepassingen die meerdere resources downloaden of meerdere taken verwerken (inclusief een of meer downloads), kan het zeer inefficiënt zijn om te wachten tot elke download is voltooid voordat u verdergaat met de volgende taak. Om de hoeveelheid tijd te verminderen die een toepassing moet wachten, kunnen veel van de WinINet-functies asynchroon werken.

In asynchrone modus kan een toepassing elke functie uitvoeren die een contextwaarde als een van de parameters bevat en andere opdrachten of functies kan blijven uitvoeren terwijl de toepassing wacht totdat de functie de taak heeft voltooid. Terwijl de taak is voltooid, wordt er een statusaanroepfunctie van de toepassing op de hoogte gesteld van de voortgang van de taak en wanneer deze is voltooid. Op dit moment kan de functie statusaanroep andere functies aanroepen of andere vereiste taken uitvoeren die afhankelijk waren van de voltooiing van de taak.

Er is geen callback thread afinity wanneer u WinINet asynchroon aanroept: een oproep kan beginnen vanaf één thread, maar elke andere thread kan de callback ontvangen.

Voordelen

Er zijn verschillende voordelen om asynchroon te werken. Bijvoorbeeld:

  • Meerdere internetbronnen tegelijk downloaden.

    U kunt tegelijkertijd verbinding maken met meerdere internetbronnen en deze downloaden zodra ze beschikbaar komen.

  • Verbeterde prestaties van uw toepassing.

    Een toepassing die de WinINet-functies gebruikt, hoeft asynchroon niet te wachten totdat de aanvraag is voltooid. De toepassing is dus vrij om andere taken uit te voeren die niet afhankelijk zijn van de aanvraag, waardoor de algehele prestaties van de toepassing worden verbeterd.

  • Controleer de voortgang van de download.

    De functie Status callback ontvangt meldingen tijdens het verwerken van een aanvraag. Indien nodig kan uw toepassing de informatie van die callback-functie voor status gebruiken om de gebruiker op de hoogte te houden van de voortgang van de bewerking of om aanvragen te onderbreken die te lang duren om te voltooien.

Scenario 's

Stel dat uw toepassing koffieprijzen moet downloaden van de Downfall Coffee & Tea en de Fourth Coffee sites en prijzen moet vergelijken. De Fourth Coffee-site heeft meestal een tragere reactietijd, dus uw toepassing moet eerst de informatie van Downfall Coffee & Tea downloaden.

Er worden twee versies van de toepassing ontwikkeld. Een werkt synchroon, eerst downloaden van de prijzen van de Downfall Coffee & Tea site en vervolgens de prijzen van de Fourth Coffee site. De tweede werkt asynchroon, het verzenden van aanvragen naar beide sites en het downloaden van de prijzen wanneer ze beschikbaar komen.

In de volgende tabel ziet u wat er zou gebeuren als de vierde koffiesite op een bepaalde dag sneller was.

Gebeurtenis Synchrone versie Asynchrone versie
Beginnen Aanvraag verzenden naar Downfall Coffee & Tea Aanvragen verzenden naar Downfall Coffee & Tea en Fourth Coffee
Aanvraag van de asynchrone versie naar Fourth Coffee voltooid Wachten Prijzen downloaden van Fourth Coffee
Aanvraag voor Downfall Coffee & Thee voltooid Download prijzen van Downfall Coffee & Tea Download prijzen van Downfall Coffee & Tea
Na Downfall Coffee & theeprijzen worden gedownload Aanvraag verzenden naar Fourth Coffee Prijzen vergelijken
Vergelijking van Asynchrone versie voltooid Wachten Bewerking voltooid
Aanvraag van de synchrone versie naar Fourth Coffee voltooid Prijzen downloaden van Fourth Coffee n.v.t
Nadat de prijzen van Fourth Coffee zijn gedownload Prijzen vergelijken n.v.t
Vergelijking van synchrone versie voltooid Bewerking voltooid n.v.t

 

Een ander voorbeeld is een webbrowser zoals Microsoft Internet Explorer. Wanneer de browser een pagina downloadt, moet deze vaak andere resources downloaden, zoals afbeeldingen en geluidsbestanden. In de asynchrone modus kunnen de pagina en de bijbehorende resources tegelijkertijd worden aangevraagd en gedownload zodra ze beschikbaar zijn, in plaats van de pagina en elke resource één voor één aan te vragen en te downloaden.

Hier volgen gerelateerde koppelingen.

Tutorials

Functies die nodig zijn om asynchrone bewerking in te stellen

Functies die asynchroon kunnen worden gebruikt

Notitie

De FtpCreateDirectory, FtpRemoveDirectory, FtpSetCurrentDirectory, FtpGetCurrentDirectory, FtpDeleteFileen ftpRenameFile functies gebruiken de contextwaarde die is opgegeven in de aanroep van de functie InternetConnect.

 

Notitie

WinINet biedt geen ondersteuning voor serverimplementaties. Daarnaast mag deze niet worden gebruikt vanuit een service. Voor server-implementaties of -services wordt Microsoft Windows HTTP Services (WinHTTP)gebruikt.