/// <summary>
        /// Starts the server process and starts the standard output/error stream if it has not already been started
        /// </summary>
        private void StartServerProcess()
        {
            if (Running)
            {
                return;
            }

            ServerProcess.Start();

            try
            {
                ServerProcess.BeginOutputReadLine();
                ServerProcess.BeginErrorReadLine();
            }
            catch (InvalidOperationException) { }
        }
        /// <summary>
        /// Starts the server process and starts the standard output/error stream if it has not already been started
        /// </summary>
        /// <exception cref="InvalidOperationException">Process is already running</exception>
        private void StartServerProcess()
        {
            if (Running)
            {
                throw new InvalidOperationException("Can't start the server process when it is already running!");
            }
            ServerProcess.Start();
            Started?.Invoke(this, EventArgs.Empty);

            try
            {
                ServerProcess.BeginOutputReadLine();
                ServerProcess.BeginErrorReadLine();
            }
            catch (InvalidOperationException) { }
        }