2011-05-27 4 views
1

Je travaille sur une application qui lit un fichier et le traite après le traitement. Je dois garder le fichier dans un flux pendant que le fichier est dans le traitement. Maintenant, le problème est que je dois minimiser le temps de verrouillage du fichier.
Quelle est la solution?Réduire le temps de VERROUILLAGE du fichier

+2

Postez votre code. – Oded

+1

Solution: Minimisez le temps pendant lequel le fichier est verrouillé ("ouvert" dans un tel mode). –

Répondre

1

Je vous recommande de conserver votre fichier au MemoryStream. Lorsque vous écrivez à MemoryStream, les données sont stockées en mémoire au lieu d'être stockées dans le système de fichiers. Après le traitement, vous pouvez ensuite appeler MemoryStream.WriteTo pour stocker les données sur le système de fichiers de façon permanente. Cela minimisera le temps de verrouillage.

+0

... en supposant qu'il y ait un temps mesurable pour générer la sortie elle-même. –

0

Vous pouvez ouvrir le descripteur de fichier avec un mode ShareMode permettant à d'autres processus d'accéder au fichier. En d'autres termes, vous pouvez lire le fichier sans créer de verrou exclusif:

FileStream stream = File.Open("path", FileMode.Open, FileAccess.Read, FileShare.ReadWrite); 
Questions connexes