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

首先,我們啓動子進程的時候,要修改子進程的工作目錄。

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

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章