首先,咱們啓動子進程的時候,要修改子進程的工做目錄。spa
ProcessStartInfo pi = new ProcessStartInfo(fileName, arguments) { WorkingDirectory = Path.GetTempPath() }; pp.StartInfo = pi; pp.Start();
這裏我把工做目錄隨便指定了一個地方,目的是防止子進程默認繼承了主進程的工做目錄。若是你省了這一個地方,只要子進程開着,那它的工做目錄就和主進程的工做目錄是同樣的,結局就是子進程刪除主進程的工做目錄,實際上是被子進程本身佔用着的,就算主線程關閉了也是如此。線程
好比,你想作最簡單的installer.exe更新,可能就是主線程下載,主線程啓動installer.exe執行靜默安裝(更新),而後發現bong,出問題了。code