mi sono imbattuto nel seguente questione quando si cerca di determinare se stavo usando le Stream
metodi come ReadAsync
e CopyToAsync
correttamente: C# 4.5 file read performance sync vs asyncasync/attende e apre un FileStream?
In questa domanda che ho letto quanto segue nella risposta accettata:
In particolare, il test "asincrono" non utilizza l'I/O asincrono; con i file flussi, devi aprirli esplicitamente come asincroni oppure stai semplicemente eseguendo operazioni sincrone su un thread in background.
Nel suo codice IO asincrono che stava usando il seguente per aprire il FileStream
'asincrono':
var file = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, true)
quindi mi chiedevo se avete intenzione di usare metodi come CopyToAsync
se si dovrebbe aprire la sottostante FileStream
come indicato sopra ?, invece di fare qualcosa di semplice come il seguente:
File.Open(filename, FileMode.Open)
che è come l'esempio che ho n la documentazione reale per CopyToAsync
dimostra l'apertura del sottostante FileStream
: https://msdn.microsoft.com/en-us/library/hh159084(v=vs.110).aspx
Se non importa in che modo il sottostante FileStream
si apre, che cosa fa il parametro useAsync
del costruttore FileStream
fare?
Quindi non importa per altri metodi IO asincroni come CopyToAsync? –
Sì, importa per altri metodi IO asincroni come CopyToAsync. ma Sfortunatamente, MSDN dice non importa. –