Zzz

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 3  →  ?path2? @ 4
/Zzz/LogViewForm.cs
@@ -11,6 +11,7 @@
private readonly MainForm _mainForm;
 
private readonly LogMemorySink _memorySink;
private readonly object _memorySinkLock;
 
public LogViewForm()
{
@@ -23,10 +24,11 @@
_mainForm.MemorySinkEnabled = true;
}
 
public LogViewForm(MainForm mainForm, LogMemorySink memorySink) :
public LogViewForm(MainForm mainForm, LogMemorySink memorySink, object memorySinkLock) :
this(mainForm)
{
_memorySink = memorySink;
_memorySinkLock = memorySinkLock;
_memorySink.Events.CollectionChanged += Events_CollectionChanged;
}
 
@@ -41,11 +43,14 @@
components.Dispose();
}
 
_memorySink.Events.CollectionChanged -= Events_CollectionChanged;
 
_mainForm.MemorySinkEnabled = false;
_memorySink.Clear();
 
lock (_memorySinkLock)
{
_memorySink.Events.CollectionChanged -= Events_CollectionChanged;
_memorySink.Clear();
}
 
base.Dispose(disposing);
}
 
/Zzz/MainForm.cs
@@ -55,6 +55,8 @@
 
private LogMemorySink _memorySink;
 
private readonly object _memorySinkLock;
 
private LogViewForm _logViewForm;
 
private SparkleUpdater _sparkle;
@@ -71,13 +73,19 @@
{
InitializeComponent();
_memorySink = new LogMemorySink();
_memorySinkLock = new object();
 
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.Conditional(condition => MemorySinkEnabled, configureSink => configureSink.Sink(_memorySink))
.WriteTo.File(Path.Combine(Constants.UserApplicationDirectory, "Logs", $"{Constants.AssemblyName}.log"),
rollingInterval: RollingInterval.Day)
.CreateLogger();
lock (_memorySinkLock)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.Conditional(condition => MemorySinkEnabled,
configureSink => configureSink.Sink(_memorySink))
.WriteTo.File(
Path.Combine(Constants.UserApplicationDirectory, "Logs", $"{Constants.AssemblyName}.log"),
rollingInterval: RollingInterval.Day)
.CreateLogger();
}
 
// Initialize the sleeper.
_trigger = new ActionTrigger(Handle);
@@ -167,9 +175,12 @@
return;
}
 
_logViewForm = new LogViewForm(this, _memorySink);
_logViewForm.Closing += LogViewFormClosing;
_logViewForm.Show();
lock (_memorySinkLock)
{
_logViewForm = new LogViewForm(this, _memorySink, _memorySinkLock);
_logViewForm.Closing += LogViewFormClosing;
_logViewForm.Show();
}
}
 
private void LogViewFormClosing(object sender, CancelEventArgs e)