我想运行两个批处理文件,它们启动一个mongodb和一个nodejs服务器。
为了运行节点服务器,我需要等待mongodb被执行。
我到目前为止,我可以像这样运行mongodb:
static void Main(string[] args)
{
Process proc = null;
try
{
string targetDir = string.Format(@"D:\nodejs\host");
proc = new Process();
proc.StartInfo.WorkingDirectory = targetDir;
proc.StartInfo.FileName = "mongo.bat";
proc.StartInfo.CreateNoWindow = false;
proc.Start();
proc.WaitForExit();
}
catch (Exception ex)
{
Console.WriteLine("Exception Occurred :{0},{1}", ex.Message, ex.StackTrace.ToString());
}
}
如何在mongo完成初始化后执行下一个批处理文件?
答案 0 :(得分:2)
我不熟悉所涉及的工具,因此我无法提供可复制的代码,但我会尝试实现此流程( very -pseudo-code):
如果你想提供一些反馈意见,那么“等待”步骤可能会发生在另一个主题上(我正在考虑BackgroundWorker
定时ProgressChanged
次调用)
第二个想法,这可能适用于任何开始但不能立即获得的工具组合......
答案 1 :(得分:1)
您可以像这样使用 WaitForExit()。
proc.Start();
proc.WaitForExit(1000 * 60 * 5); // wait for 5 minutes.
或强>
proc = new Process();
while (!proc.HasExited)
{
//mongoDB started
}
// Now start node server
希望它对你有所帮助......