Condividi tramite


I/O asincrona e RPC asincrona

I/O asincrono è un mezzo efficiente per un singolo thread per gestire simultaneamente più richieste di I/O. RPC asincrono nel server esegue uno scopo simile per le richieste RPC. Nelle versioni di Windows precedenti a Windows Vista, la registrazione di richieste di I/O asincrone da procedure server tramite RPC asincrona è sconsigliata. Tuttavia, in Windows Vista e versioni successive di Windows, le richieste di I/O asincrone associate a una porta di completamento di I/O sono supportate da RPC asincrona.

Prima di Windows Vista, una chiamata di procedura remota asincrona può essere completata prima del completamento della richiesta di I/O asincrona. Al termine della chiamata asincrona, il thread può terminare se il runtime RPC decide che dispone di thread sufficienti per il servizio del carico di lavoro previsto. Il sistema associa tutte le richieste di I/O al thread che li avvia. Se il thread termina, le richieste di I/O in sospeso nel thread vengono interrotte. Le richieste di I/O in sospeso non possono essere spostate in un altro thread.

Pertanto, le finestre di progettazione applicazioni destinate alle versioni di Windows prima di Windows Vista possono usare operazioni di I/O sincrone nelle procedure server oppure possono inoltrare tutte le richieste che coinvolgono l'I/O asincrona alle procedure eseguite in un pool di thread gestito dall'applicazione. L'API Windows fornisce funzioni per la gestione del pool di thread. Vedere Funzioni di elaborazione e thread.