diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs index aeaeabb4..51cc08f8 100644 --- a/v2rayN/v2rayN/Forms/MainForm.cs +++ b/v2rayN/v2rayN/Forms/MainForm.cs @@ -413,6 +413,7 @@ namespace v2rayN.Forms { autoLatencyRefreshTask = Task.Run(async delegate { + if (!this.IsHandleCreated) return; // the GUI app is exiting. await Task.Delay(2000); this.Invoke((MethodInvoker)(delegate { diff --git a/v2rayN/v2rayN/Handler/V2rayHandler.cs b/v2rayN/v2rayN/Handler/V2rayHandler.cs index d3df7118..6967eec5 100644 --- a/v2rayN/v2rayN/Handler/V2rayHandler.cs +++ b/v2rayN/v2rayN/Handler/V2rayHandler.cs @@ -303,6 +303,7 @@ namespace v2rayN.Handler { try { + if (p.HasExited) return; p.CloseMainWindow(); p.WaitForExit(100); if (!p.HasExited) diff --git a/v2rayN/v2rayN/HttpProxyHandler/PrivoxyHandler.cs b/v2rayN/v2rayN/HttpProxyHandler/PrivoxyHandler.cs index 310054f0..771eb8a0 100644 --- a/v2rayN/v2rayN/HttpProxyHandler/PrivoxyHandler.cs +++ b/v2rayN/v2rayN/HttpProxyHandler/PrivoxyHandler.cs @@ -138,6 +138,7 @@ namespace v2rayN.HttpProxyHandler { try { + if (p.HasExited) return; // someting, while the GUI app is exiting. p.CloseMainWindow(); p.WaitForExit(100); if (!p.HasExited)