Process.Start()返回ID但进程未到达Main方法

时间:2016-09-19 13:56:59

标签: c# .net

我遇到了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

2 个答案:

答案 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