Я хотел бы создать новый процесс, который будет очищаться после себя, даже если вызывающий процесс завершен. Я смоделировал пример ниже, используя блокнот для отображения временного файла, который я хотел бы удалить после закрытия блокнота.
В приведенном ниже коде это работает должным образом, если я раскомментирую строку WaitForExit () или, альтернативно, войду в бесконечный цикл для имитации запуска вызывающей программы. Основная проблема заключается в том, что вызывающая программа заканчивается, поскольку событие больше не обрабатывается.
Буду признателен за любые предложения о том, как справиться с этим делом.
С уважением,
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();
}