Condividi tramite


Operazione asincrona

Il tempo necessario per accedere a una risorsa Internet da parte di un'applicazione dipende da diversi fattori, ad esempio la connessione usata, il server in cui si trova la risorsa e il numero di utenti che tentano di accedere alla risorsa. Per le applicazioni che scaricano più risorse o gestiscono più attività (inclusi uno o più download), l'attesa del completamento di ogni download prima di passare all'attività successiva può risultare estremamente inefficiente. Per ridurre il tempo di attesa di un'applicazione, molte delle funzioni WinINet possono funzionare in modo asincrono.

In modalità asincrona, un'applicazione può eseguire qualsiasi funzione che includa un valore di contesto come uno dei relativi parametri e può continuare a eseguire altri comandi o funzioni mentre l'applicazione attende il completamento dell'attività da parte della funzione. Durante il completamento dell'attività, una funzione di callback di stato fornita dall'applicazione riceve una notifica sullo stato dell'attività e al termine dell'operazione. In questo momento, la funzione di callback di stato può chiamare altre funzioni o eseguire qualsiasi altra attività necessaria che dipende dal completamento dell'attività.

Non esiste un thread di callback quando si chiama WinINet in modo asincrono: una chiamata potrebbe iniziare da un thread, ma qualsiasi altro thread può ricevere il callback.

Vantaggi

Esistono diversi vantaggi per operare in modo asincrono. Ad esempio:

  • Download simultaneo di più risorse Internet.

    È possibile connettersi a più risorse Internet contemporaneamente e scaricarle man mano che diventano disponibili.

  • Aumento delle prestazioni dell'applicazione.

    Un'applicazione che usa le funzioni WinINet in modo asincrono non deve attendere il completamento della richiesta, quindi l'applicazione è libera di eseguire altre attività che non dipendono dalla richiesta, migliorando così le prestazioni complessive dell'applicazione.

  • Monitorare lo stato di avanzamento del download.

    La funzione di callback di stato riceve notifiche durante l'elaborazione di una richiesta. Se necessario, l'applicazione può usare le informazioni fornite da tale funzione di callback di stato per mantenere l'utente informato sullo stato di avanzamento dell'operazione o per interrompere le richieste che richiedono troppo tempo per il completamento.

Scenari

Si supponga che l'applicazione debba scaricare i prezzi del caffè dai siti Downfall Coffee & Tea e Fourth Coffee e confrontare i prezzi. Il sito Fourth Coffee in genere ha un tempo di risposta più lento, quindi l'applicazione deve scaricare prima le informazioni da Downfall Coffee & Tea.

Vengono sviluppate due versioni dell'applicazione. Uno funziona in modo sincrono, prima scaricando i prezzi dal sito Downfall Coffee & Tea e poi i prezzi dal sito Fourth Coffee. Il secondo funziona in modo asincrono, inviando richieste a entrambi i siti e scaricando i prezzi quando diventano disponibili.

La tabella seguente illustra cosa accadrebbe se il sito Fourth Coffee fosse più veloce in un determinato giorno.

Evento Versione sincrona Versione asincrona
Inizio Invia richiesta a Downfall Coffee & Tea Inviare richieste a Downfall Coffee & Tea e Fourth Coffee
Richiesta dalla versione asincrona a Fourth Coffee completata In attesa Scarica i prezzi da Fourth Coffee
Richiesta di Downfall Coffee & Tea completato Scarica i prezzi da Downfall Coffee & Tea Scarica i prezzi da Downfall Coffee & Tea
Dopo Downfall Coffee & Tea's prezzi sono scaricati Invia richiesta a Fourth Coffee Confrontare i prezzi
Confronto della versione asincrona completata In attesa Operazione completata
Richiesta dalla versione sincrona a Fourth Coffee completata Scarica i prezzi da Fourth Coffee n/d
Dopo il download dei prezzi di Fourth Coffee Confrontare i prezzi n/d
Confronto della versione sincrona completata Operazione completata n/d

 

Un altro esempio è un Web browser, ad esempio Microsoft Internet Explorer. Quando il browser scarica una pagina, spesso deve scaricare altre risorse, ad esempio immagini e file audio. In modalità asincrona, la pagina e le risorse associate possono essere richieste simultaneamente e scaricate man mano che diventano disponibili, anziché richiedere e scaricare la pagina e ogni risorsa alla volta.

Di seguito sono riportati i collegamenti correlati.

Esercitazioni

Funzioni necessarie per configurare l'operazione asincrona

Funzioni che possono essere usate in modo asincrono

 

Nota

WinINet non supporta le implementazioni del server. Inoltre, non deve essere usato da un servizio. Per le implementazioni del server o i servizi utilizzano Servizi HTTP Di Microsoft Windows (WinHTTP).