public bool Start() { if (Running) { return(false); } try { BaseProcess = Process.Start(new ProcessStartInfo(Manager.FrpcPath, Manager.GetArguments(Id)) { CreateNoWindow = true, UseShellExecute = false, RedirectStandardInput = true, RedirectStandardError = true, RedirectStandardOutput = true, StandardErrorEncoding = Encoding.UTF8, StandardOutputEncoding = Encoding.UTF8 }); BaseProcess.ErrorDataReceived += OnProcessData; BaseProcess.OutputDataReceived += OnProcessData; BaseProcess.BeginErrorReadLine(); BaseProcess.BeginOutputReadLine(); return(true); } catch (Exception e) { Manager.Main.LogManager.Log(LogManager.CATEGORY_SERVICE_WARNING, Name, "隧道启动失败: " + e.Message); Stop(); } return(false); }