|
Di seguito alcuni esempi tratti da
TheDelphiMagazine relativi all'esecuzione asincrona di operazioni di I/O. Il
tutto gira attorno alla structure
OVERLAPPED che viene utilizzata come parametro nelle api win32 ReadFile,
WriteFile, etc...: proprio per questo si parla anche di Overlapped I/O. Le api
Win32 ReadFile e WriteFile prevedono l'esecuzione di operazioni di I/O sia in
forma sincrona sia in forma asincrona mentre le 2 estensioni corrispondenti
denominate ReadFileEx e WriteFileEx consentono solo esecuzioni asincrone. La
peculiarità delle 2 versioni estese è l'ultimo parametro che definisce una
funzione di callback: tale funzione di callback verrà chiamata ad operazione di
I/O terminata o cancellata nel caso che il thread chiamante sia in uno stato di
attesa in seguito ad esempio alla chiamata all'api win32 WaitForSingleObjectEx;
per approfondimenti sulle caratteristiche di questa funzione di callback basta
consultare
FileIOCompletionRoutine Callback Function . Non mi dilungo ulteriormente in
quanto il Platform SDK fornisce una documentazione più che adeguata; se si vuole
prendere il discorso alla lontana si può far riferimento al seguente link
dedicato alla Sincronizzazione
http://msdn.microsoft.com/en-us/library/ms686353(VS.85).aspx
Gi esempi trattano la lettura asincrona di un file tramite le api
ReadFile
e
ReadFileEx
Async.7z
|