Thanks winni, that's better now
Better but still a bit jerky, isn't it?
You should use a thread in this case. Apparently the external process results are not needed immediately, making the thread's synchronization easy.
Just call Thread.WaitFor before you need the result, then free the thread.
If the thread has finished by then, it will not slow down the main process at all.
Threads should be used more because CPUs have more and more cores. Typically only one of them is busy at a time while others idle.