|
@@ -27,7 +27,6 @@ namespace Vinno.FIS.Sonopost
|
|
|
{
|
|
|
private readonly LogEngine _logEngine = new SonopostLogEngine();
|
|
|
private readonly ManualResetEvent _manualResetEvent = new ManualResetEvent(false);
|
|
|
- private readonly object _lock = new object();
|
|
|
|
|
|
private WebHost _webHost;
|
|
|
private INetworkManager _networkManager;
|
|
@@ -211,7 +210,7 @@ namespace Vinno.FIS.Sonopost
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- Logger.WriteLineWarn("OnExit Invoke");
|
|
|
+ Logger.WriteLineWarn("Sonopost OnExit Invoke");
|
|
|
Dispose();
|
|
|
base.OnExit(e);
|
|
|
}
|
|
@@ -227,42 +226,40 @@ namespace Vinno.FIS.Sonopost
|
|
|
|
|
|
private void Dispose()
|
|
|
{
|
|
|
- lock (_lock)
|
|
|
+ if (_isDisposed)
|
|
|
{
|
|
|
- if (_isDisposed)
|
|
|
- {
|
|
|
- return;
|
|
|
- }
|
|
|
+ _manualResetEvent.WaitOne(3000);
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- Logger.WriteLineWarn("Sonopost Dispose Invoke");
|
|
|
- try
|
|
|
+ Logger.WriteLineWarn("Sonopost Dispose Invoke");
|
|
|
+ try
|
|
|
+ {
|
|
|
+ _isDisposed = true;
|
|
|
+ Task.Run(() =>
|
|
|
{
|
|
|
- _isDisposed = true;
|
|
|
- Task.Run(() =>
|
|
|
+ try
|
|
|
{
|
|
|
- try
|
|
|
- {
|
|
|
- _oledManager?.ShowStatus(OledMessage.ShutDown);
|
|
|
- Thread.Sleep(50);
|
|
|
- _networkManager.CurrentNetworkChanged -= OnCurrentNetworkChanged;
|
|
|
- _networkManager.CurrentWifiLevelChanged -= OnCurrentWifiLevelChanged;
|
|
|
- AppDomain.CurrentDomain.UnhandledException -= CurrentDomainUnhandledException;
|
|
|
- SystemEvents.SessionEnded -= OnSessionEnded;
|
|
|
- DisposeWebHost();
|
|
|
- AppManager.Instance.DisposeAllManagers();
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- Logger.WriteLineError($"Sonopost Dispose Error:{ex}");
|
|
|
- }
|
|
|
- });
|
|
|
- _manualResetEvent.WaitOne(3000);
|
|
|
- Logger.WriteLineWarn("=======================Sonopost Shutdown=======================");
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- Logger.WriteLineError($"Sonopost Dispose Error:{ex}");
|
|
|
- }
|
|
|
+ _oledManager?.ShowStatus(OledMessage.ShutDown);
|
|
|
+ Thread.Sleep(50);
|
|
|
+ _networkManager.CurrentNetworkChanged -= OnCurrentNetworkChanged;
|
|
|
+ _networkManager.CurrentWifiLevelChanged -= OnCurrentWifiLevelChanged;
|
|
|
+ AppDomain.CurrentDomain.UnhandledException -= CurrentDomainUnhandledException;
|
|
|
+ SystemEvents.SessionEnded -= OnSessionEnded;
|
|
|
+ DisposeWebHost();
|
|
|
+ AppManager.Instance.DisposeAllManagers();
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ Logger.WriteLineError($"Sonopost Dispose Error:{ex}");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ _manualResetEvent.WaitOne(3000);
|
|
|
+ Logger.WriteLineWarn("=======================Sonopost Shutdown=======================");
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ Logger.WriteLineError($"Sonopost Dispose Error:{ex}");
|
|
|
}
|
|
|
}
|
|
|
|