我遇到了Process.Start()
的问题 - 它正在返回一个进程PID,表明进程已正确启动,但我无法在进程中看到它,也没有记录日志和错误主要方法。代码正在启动过程:
public static int StartBackgroundProcess(string fileName, string arguments)
{
int processId = INVALID_PROCESS_ID;
try
{
using (Process p = new Process())
{
p.StartInfo.FileName = fileName;
p.StartInfo.Arguments = arguments;
p.StartInfo.UseShellExecute = false;
p.Start();
processId = p.Id;
}
}
catch (Exception ex)
{
Logger.Error(ex);
}
return processId;
}
注意:我有退出代码:
2016-09-19 17:44:15 [23] DEBUG流程退出代码:-1073741502
答案 0 :(得分:2)
尝试将文件名更改为100%有效的文件名。像“C:\ Windows \ System32 \ mspaint.exe”这样的东西。
如果开始,您应该查看您的其他文件。
public static int StartBackgroundProcess(string fileName, string arguments)
{
int processId = INVALID_PROCESS_ID;
try
{
using (Process p = new Process())
{
p.StartInfo.FileName = C:\Windows\System32\mspaint.exe";
p.StartInfo.Arguments = "";
p.StartInfo.UseShellExecute = false;
p.Start();
processId = p.Id;
}
}
catch (Exception ex)
{
Logger.Error(ex);
}
return processId;
}
答案 1 :(得分:0)
我可以看到您在使用块中有处理实例,因此在调用Start后它是处置。根据文档,处理流程会释放此流程使用的所有资源' 。我的猜测是它会停止这个过程,但事实并非如此。
https://msdn.microsoft.com/en-us/library/4zfy9z3c(v=vs.110).aspx