process . start()返回ID,但是进程没有到达Main方法
本文关键字:进程 方法 Main start 返回 ID process | 更新日期: 2023-09-27 18:07:45
我遇到了Process.Start()
的问题-它正在返回一个进程PID,这表明进程已经正确启动,但我无法在进程中看到它,没有日志也没有从Main方法记录错误。启动进程的代码:
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
尝试将文件名更改为您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;
}
我可以看到你有你的进程实例在一个使用块,所以它是处置在调用Start之后。根据文档,处置过程释放"该过程使用的所有资源"。我的猜测是,它停止了进程,但它没有。
https://msdn.microsoft.com/en-us/library/4zfy9z3c (v = vs.110) . aspx