J'ai une boucle foreach qui démarre un processus dans un try/catch. Dans la section enfin de mon try/catch/finally j'essaye de m'assurer que le processus n'a aucun contrôle sur les fichiers. Je dois supprimer les fichiers en cours de traitement.C# Bloquer le code jusqu'à ce que les processus libèrent le handle sur les fichiers
Rien que j'ai essayé semble fonctionner. Je continue à obtenir des exceptions System.IO. "Le fichier est actuellement utilisé par un autre processus."
Vous pouvez voir dans le j'utilise finalement le WaitForExit() avant de retourner de cette méthode. L'appel de méthode suivant est un pour supprimer des fichiers. Pourquoi le processus serait-il encore ouvert ou aurait un contrôle sur l'un de ces fichiers après cela?
Merci!
try
{
foreach (var fileInfo in jsFiles)
{
//removed for clarity
_process.StartInfo.FileName = "\"C:\\Program Files\\Java\\jre6\\bin\\java\"";
_process.StartInfo.Arguments = stringBuilder.ToString();
_process.StartInfo.UseShellExecute = false;
_process.StartInfo.RedirectStandardOutput = true;
_process.Start();
}
}
catch (Exception e)
{
BuildMessageEventArgs args = new BuildMessageEventArgs("Compression Error: " + e.Message,
string.Empty, "JSMin", MessageImportance.High);
BuildEngine.LogMessageEvent(args);
}
finally
{
_process.WaitForExit();
_process.Close();
}
Merci pour la suggestion. – Nick