First off, add your handlers
before you call Start on the process - or otherwise, you will lose any data the app generates before you add the handlers.
Second, the DataReceived events are always handled on a separate thread unless you set the
Process.SynchronizingObject Property (System.Diagnostics) | Microsoft Docs[
^] which synchronises data onto the UI thread for you.
Be aware that the OutputDataReceived event only works in complete lines.