mirror of
https://github.com/ShareX/ShareX.git
synced 2024-06-28 03:00:22 +12:00
Fixed unhandled exception in SingleInstanceManager
This commit is contained in:
parent
e6a2ac818e
commit
c3b27567dc
|
@ -68,7 +68,7 @@ protected void OnMessageAdded(string message)
|
|||
MessageAdded?.Invoke(message);
|
||||
}
|
||||
|
||||
private void ProcessMessageQueue()
|
||||
public void ProcessMessageQueue()
|
||||
{
|
||||
lock (loggerLock)
|
||||
{
|
||||
|
|
|
@ -69,6 +69,7 @@ public SingleInstanceManager(bool isSingleInstance, string[] args)
|
|||
{
|
||||
RedirectArgumentsToFirstInstance(args);
|
||||
|
||||
DebugHelper.Logger.ProcessMessageQueue();
|
||||
Environment.Exit(0);
|
||||
}
|
||||
}
|
||||
|
@ -125,27 +126,34 @@ private async Task ListenForConnectionsAsync()
|
|||
}
|
||||
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()
|
||||
|
|
|
@ -377,13 +377,13 @@ public static void CloseSequence()
|
|||
{
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue