總結一個主進程啓動子進程,刪除主進程文件和目錄的問題

首先,咱們啓動子進程的時候,要修改子進程的工做目錄。spa

      ProcessStartInfo pi = new ProcessStartInfo(fileName, arguments)
      {
        WorkingDirectory = Path.GetTempPath()
      };
      pp.StartInfo = pi;
      pp.Start();

這裏我把工做目錄隨便指定了一個地方,目的是防止子進程默認繼承了主進程的工做目錄。若是你省了這一個地方,只要子進程開着,那它的工做目錄就和主進程的工做目錄是同樣的,結局就是子進程刪除主進程的工做目錄,實際上是被子進程本身佔用着的,就算主線程關閉了也是如此。線程

好比,你想作最簡單的installer.exe更新,可能就是主線程下載,主線程啓動installer.exe執行靜默安裝(更新),而後發現bong,出問題了。code

相關文章
相關標籤/搜索