This is an old question but I see this pop up a lot all over the Internet. For anyone looking for a clean and relatively safe solution, I posted a solution I created on my GitHub Gist (link below). Feel free to use it however you see fit. Also, if anyone would prefer to see the actual solution here, let me know and I'll modify this answer to include the code.
The right way to run external process in .NET (async version) (GitHub Gist)