Fixed unhandled exception in SingleInstanceManager

This commit is contained in:
Jaex 2024-03-11 05:11:00 +03:00
parent e6a2ac818e
commit c3b27567dc
3 changed files with 19 additions and 11 deletions

View File

@ -68,7 +68,7 @@ namespace ShareX.HelpersLib
MessageAdded?.Invoke(message);
}
private void ProcessMessageQueue()
public void ProcessMessageQueue()
{
lock (loggerLock)
{

View File

@ -69,6 +69,7 @@ namespace ShareX.HelpersLib
{
RedirectArgumentsToFirstInstance(args);
DebugHelper.Logger.ProcessMessageQueue();
Environment.Exit(0);
}
}
@ -125,27 +126,34 @@ namespace ShareX.HelpersLib
}
catch (Exception e)
{
DebugHelper.WriteLine("Error in named pipe communication: {0}", e.Message);
DebugHelper.WriteException(e);
}
}
}
private void RedirectArgumentsToFirstInstance(string[] args)
{
using (NamedPipeClientStream clientPipe = new NamedPipeClientStream(".", PipeName, PipeDirection.Out))
try
{
clientPipe.Connect();
using (BinaryWriter writer = new BinaryWriter(clientPipe, Encoding.UTF8))
using (NamedPipeClientStream clientPipe = new NamedPipeClientStream(".", PipeName, PipeDirection.Out))
{
writer.Write(args.Length);
clientPipe.Connect();
foreach (string argument in args)
using (BinaryWriter writer = new BinaryWriter(clientPipe, Encoding.UTF8))
{
writer.Write(argument);
writer.Write(args.Length);
foreach (string argument in args)
{
writer.Write(argument);
}
}
}
}
catch (Exception e)
{
DebugHelper.WriteException(e);
}
}
public void Dispose()

View File

@ -377,13 +377,13 @@ namespace ShareX
{
closeSequenceStarted = true;
DebugHelper.Logger.AsyncWrite = false;
DebugHelper.WriteLine("ShareX closing.");
if (WatchFolderManager != null) WatchFolderManager.Dispose();
WatchFolderManager?.Dispose();
SettingManager.SaveAllSettings();
DebugHelper.WriteLine("ShareX closed.");
DebugHelper.Logger.ProcessMessageQueue();
}
}