Very few differences. The static method returns a process object, so you can still use "p.WaitForExit ()", etc. - Using the method in which you create a new process, it would be easier to change the process parameters (affinity for the processor, etc.) before starting the process.
Other than that, there is no difference. A new process object is created in both directions.
In your second example, this is identical to this:
Process p = Process.Start("hello.exe");
p.WaitForExit();
source
share