mirror of
https://github.com/netchx/netch.git
synced 2026-04-03 19:35:10 +08:00
MainController.StopAsync() Exception handling
This commit is contained in:
@@ -49,7 +49,12 @@ namespace Netch.Controllers
|
||||
/// <param name="mode">模式</param>
|
||||
/// <returns>是否启动成功</returns>
|
||||
/// <exception cref="MessageException"></exception>
|
||||
public static async Task Start(Server server, Mode mode)
|
||||
public static async Task StartAsync(Server server, Mode mode)
|
||||
{
|
||||
await Task.Run(() => Start(server, mode));
|
||||
}
|
||||
|
||||
public static void Start(Server server, Mode mode)
|
||||
{
|
||||
Logging.Info($"启动主控制器: {server.Type} [{mode.Type}]{mode.Remark}");
|
||||
Server = server;
|
||||
@@ -71,23 +76,15 @@ namespace Netch.Controllers
|
||||
{
|
||||
if (!ModeHelper.SkipServerController(server, mode))
|
||||
{
|
||||
await Task.Run(() => StartServer(server, mode, out _serverController));
|
||||
|
||||
StartServer(server, mode, out _serverController);
|
||||
StatusPortInfoText.UpdateShareLan();
|
||||
}
|
||||
|
||||
await Task.Run(() => StartMode(mode));
|
||||
StartMode(mode);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
try
|
||||
{
|
||||
await Stop();
|
||||
}
|
||||
catch
|
||||
{
|
||||
// ignored
|
||||
}
|
||||
StopAsync().Wait();
|
||||
|
||||
switch (e)
|
||||
{
|
||||
@@ -154,7 +151,7 @@ namespace Netch.Controllers
|
||||
/// <summary>
|
||||
/// 停止
|
||||
/// </summary>
|
||||
public static async Task Stop()
|
||||
public static async Task StopAsync()
|
||||
{
|
||||
if (_serverController == null && ModeController == null)
|
||||
return;
|
||||
@@ -169,7 +166,16 @@ namespace Netch.Controllers
|
||||
Task.Run(() => ModeController?.Stop())
|
||||
};
|
||||
|
||||
await Task.WhenAll(tasks);
|
||||
try
|
||||
{
|
||||
await Task.WhenAll(tasks);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Logging.Error(e.ToString());
|
||||
Utils.Utils.Open(Logging.LogFile);
|
||||
}
|
||||
|
||||
ModeController = null;
|
||||
ServerController = null;
|
||||
}
|
||||
|
||||
@@ -343,7 +343,7 @@ namespace Netch.Forms
|
||||
Type = 5
|
||||
};
|
||||
|
||||
await MainController.Start(server!, mode);
|
||||
await MainController.StartAsync(server!, mode);
|
||||
proxyServer = $"http://127.0.0.1:{Global.Settings.HTTPLocalPort}";
|
||||
}
|
||||
|
||||
@@ -361,14 +361,7 @@ namespace Netch.Forms
|
||||
finally
|
||||
{
|
||||
if (useProxy)
|
||||
try
|
||||
{
|
||||
await MainController.Stop();
|
||||
}
|
||||
catch
|
||||
{
|
||||
// ignored
|
||||
}
|
||||
await MainController.StopAsync();
|
||||
|
||||
DisableItems(true);
|
||||
}
|
||||
@@ -464,7 +457,7 @@ namespace Netch.Forms
|
||||
Type = 5
|
||||
};
|
||||
|
||||
await MainController.Start(server, mode);
|
||||
await MainController.StartAsync(server, mode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -483,7 +476,7 @@ namespace Netch.Forms
|
||||
finally
|
||||
{
|
||||
if (useProxy)
|
||||
await MainController.Stop();
|
||||
await MainController.StopAsync();
|
||||
|
||||
StatusText();
|
||||
Enabled = true;
|
||||
@@ -639,7 +632,7 @@ namespace Netch.Forms
|
||||
{
|
||||
// 停止
|
||||
State = State.Stopping;
|
||||
await MainController.Stop();
|
||||
await MainController.StopAsync();
|
||||
State = State.Stopped;
|
||||
return;
|
||||
}
|
||||
@@ -666,7 +659,7 @@ namespace Netch.Forms
|
||||
|
||||
try
|
||||
{
|
||||
await MainController.Start(server, mode);
|
||||
await MainController.StartAsync(server, mode);
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
@@ -1407,7 +1400,7 @@ namespace Netch.Forms
|
||||
File.Delete(file);
|
||||
|
||||
if (!IsWaiting())
|
||||
await MainController.Stop();
|
||||
await MainController.StopAsync();
|
||||
|
||||
Dispose();
|
||||
Environment.Exit(Environment.ExitCode);
|
||||
|
||||
Reference in New Issue
Block a user