我有一個啓動第二個exe的方法。我遇到的問題是,如果我在Visual Studio中處於調試模式,並且在Process.Start調用後直接放置斷點,我的第二個應用程序立即啓動,但如果我在VS中沒有斷點或運行我的主C#應用程序在VS之外,通過Process.Start啓動我的第二個應用程序最多可能需要兩分鐘的時間。我的方法是在下面,我把我的斷點看到第二個應用程序的立即啓動是在「if(null!= _ProcessMine)」行。我把第二個exe文件的啓動放在了一個工作線程中,因爲當我關閉主exe文件時,我想要關閉第二個exe文件。Process.Start需要很長時間才能啓動外部應用程序
public static void RunBtnProcessThread(string processName, String sArgs, Button btn)
{
// disable the button until we release the newly launched process
btn.Enabled = false;
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += (doWorkSender, doWorkArgs) =>
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = processName;
startInfo.Arguments = sArgs;
try
{
using (_ProcessMine = Process.Start(startInfo))
{
if(null != _ProcessMine)
_ProcessMine.WaitForExit();
}
}
catch (Exception ex)
{
string _Funk = ReflectionHelper.GetMethodFullName(MethodBase.GetCurrentMethod());
// error
Debug.Assert(false, "Error: " + ex.Message);
// Log error.
TraceUtil.LogException(_Funk, ex);
}
System.Threading.Thread.Sleep(500);
};
worker.RunWorkerCompleted += (completedSender, completedArgs) =>
{
btn.Enabled = true;
_ProcessMine)= null;
};
worker.RunWorkerAsync();
}
我已經編輯好標題:
你可以使用類似關閉它。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –