c# 如何等待 Process.Start()结束啊? 求助

时间:2022-08-29 14:45:14
我想在Process.Start()启动一个ftp 命令下载文件。
然后再下载完成以后做一些操作。如何让c#等待 Process.Start()结束啊?
谢谢阿

5 个解决方案

#1


加个线程,扫描ftp的进程.
没ftp进程了,就代表,ftp执行完了,前提,是ftp用完了,你要关闭它.

#2


FTP一直开着,设置是最多同时下载10个,剩下的就排队等待。

#3


FTP一直开着,设置是最多同时下载10个,剩下的就排队等待。

#4


_Process.WaitForExit();

#5


 public static string ExeCommand(string [] commandTexts)
  {
   Process p = new Process();
   p.StartInfo.FileName = "cmd.exe";
   p.StartInfo.UseShellExecute = false;
   p.StartInfo.RedirectStandardInput = true;
   p.StartInfo.RedirectStandardOutput = true;
   p.StartInfo.RedirectStandardError = true;
   p.StartInfo.CreateNoWindow = true;
   string strOutput = null;
   try
   {
    p.Start();
    foreach(string item in commandTexts)
    {
     p.StandardInput.WriteLine(item);
    }
    p.StandardInput.WriteLine("exit");
    strOutput = p.StandardOutput.ReadToEnd();
    p.WaitForExit();
    p.Close();
   }
   catch(Exception e)
   {
    strOutput = e.Message;
   }
   return strOutput;
}

#1


加个线程,扫描ftp的进程.
没ftp进程了,就代表,ftp执行完了,前提,是ftp用完了,你要关闭它.

#2


FTP一直开着,设置是最多同时下载10个,剩下的就排队等待。

#3


FTP一直开着,设置是最多同时下载10个,剩下的就排队等待。

#4


_Process.WaitForExit();

#5


 public static string ExeCommand(string [] commandTexts)
  {
   Process p = new Process();
   p.StartInfo.FileName = "cmd.exe";
   p.StartInfo.UseShellExecute = false;
   p.StartInfo.RedirectStandardInput = true;
   p.StartInfo.RedirectStandardOutput = true;
   p.StartInfo.RedirectStandardError = true;
   p.StartInfo.CreateNoWindow = true;
   string strOutput = null;
   try
   {
    p.Start();
    foreach(string item in commandTexts)
    {
     p.StandardInput.WriteLine(item);
    }
    p.StandardInput.WriteLine("exit");
    strOutput = p.StandardOutput.ReadToEnd();
    p.WaitForExit();
    p.Close();
   }
   catch(Exception e)
   {
    strOutput = e.Message;
   }
   return strOutput;
}