public bool Spawn(String args, out string result)
{
ProcessStartInfo processStartInfo;
Process process;
File.Delete("result.dat");
processStartInfo = new ProcessStartInfo(EXE_IN_FULL_PATH, args);
processStartInfo.CreateNoWindow = true;
processStartInfo.RedirectStandardOutput = false;
processStartInfo.RedirectStandardInput = false;
processStartInfo.UseShellExecute = false;
processStartInfo.WindowStyle = ProcessWindowStyle.Normal;
using (process = new Process())
{
process.StartInfo = processStartInfo;
process.EnableRaisingEvents = false;
process.Start();
//等待进程50秒,根据实施时的具体情况来设置
bool terminated = process.WaitForExit(50 * 1000);
if (!terminated)
{
process.Kill();
result = null;
return false;
}
else
{
result = File.ReadAllText("result.dat");
if (String.IsNullOrWhiteSpace(result))
{
result = null;
return false;
}
else
return true;
}
}
}