我想創建一個新的進程,即使調用進程已終止,它也會自行清理。我在下面嘲笑了一個例子,用記事本來顯示一個臨時文件,在記事本關閉後我想刪除它。是否有可能創建一個始終自行清理的進程?
在下面的代碼中,如果我取消註釋WaitForExit()行或者進入無限循環模仿正在運行的調用程序,則按預期工作。主要問題是調用程序何時結束,因爲事件不再處理。
我很感激任何關於如何處理這種情況的建議。
問候,
克里斯
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();
}
我不明白爲什麼** **你評論的最後一行。我知道它阻止了調用者線程(即你的程序),但這可能正是你想要的** ** – 2010-12-11 19:58:52
我希望調用者線程(我的程序)繼續它的生活之後,完全獨立於子進程。 – cristobalito 2010-12-11 20:05:46