Je voudrais créer un nouveau processus qui nettoie après lui-même, même si le processus appelant s'est terminé. J'ai mocké un exemple ci-dessous, en utilisant le bloc-notes pour afficher un fichier temporaire, que je voudrais être supprimé après la fermeture du bloc-notes.Est-il possible de créer un processus qui nettoiera toujours après lui-même?
Dans le code ci-dessous, cela fonctionne comme prévu si je décommenter la ligne WaitForExit() ou alternativement aller dans une boucle infinie pour imiter le programme appelant en cours d'exécution. Le problème principal est lorsque le programme appelant se termine, car l'événement n'est plus géré.
J'apprécierais toutes les suggestions sur la façon de gérer ce cas.
Cordialement,
Chris
static void Main(string[] args)
{
string filename = @"c:\temp\example.txt";
if (!File.Exists(filename))
File.WriteAllText(filename, "abc");
ProcessStartInfo psi = new ProcessStartInfo("notepad", filename);
Process cmdProcess = new Process();
Process p = new Process();
psi.CreateNoWindow = true;
p.EnableRaisingEvents = true;
p.StartInfo = psi;
p.Exited += (sender, e) => { File.Delete(filename); };
p.Start();
//p.WaitForExit();
}
Je ne comprends pas pourquoi ** ** avez-vous commenter la dernière ligne. Je sais que cela bloque le fil de l'appelant (c'est-à-dire votre programme) mais peut être exactement ce que vous voulez ** –
Je voudrais que le fil de l'appelant (mon programme) continue sa vie après, totalement indépendant du sous-processus . – cristobalito