Tengo un código que escribe un archivo guardando un MemoryStream en un FileStream usando MemoryStream.WriteTo(). Después de que el archivo se cierra, se abre de nuevo para leer algunos datos ...¿FileStream.Dispose cierra el archivo inmediatamente?
Esto funciona aproximadamente 80 - 90% del tiempo. El otro 20% recibo una excepción que dice que el archivo está "en uso por otro proceso".
¿FileStream.Dispose() no libera recursos sincrónicamente? ¿Hay algo más bajo en Win32 land del que no estoy enterado? No veo nada obvio en la documentación de .Net.
¿Esto está en NTFS? ¿Es el archivo local o en un recurso compartido remoto? Dudo que sea Dipose() que no cierre la MANIJA, creo que podría estar experimentando lo que los desarrolladores de SAMBA llamaron los "modos abiertos onerosos" de Windows (especialmente si un reintento de 500-1000ms en la segunda apertura tiene éxito). – ribram
Es NTFS. Si sigo haciendo clic en el botón Guardar en mi ventana, finalmente se guarda. Estoy manejando errores así que al menos no falla. – Nate