Skip to content

Commit df62bf5

Browse files
Randall FlaggRandall Flagg
authored andcommitted
Changed: Removed the thread that updates the status line and replaced it with an event
1 parent 36df022 commit df62bf5

File tree

8 files changed

+21
-190
lines changed

8 files changed

+21
-190
lines changed

src/LogExpert/Classes/DelayedTrigger.cs

Lines changed: 0 additions & 107 deletions
This file was deleted.

src/LogExpert/Controls/LogTabWindow/LogTabWindow.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ internal partial class LogTabWindow : Form
4646

4747
private readonly EventWaitHandle _statusLineEventHandle = new AutoResetEvent(false);
4848
private readonly EventWaitHandle _statusLineEventWakeupHandle = new ManualResetEvent(false);
49-
private readonly object _statusLineLock = new();
5049
private readonly Brush _syncLedBrush;
5150
private readonly StringFormat _tabStringFormat = new();
5251
private readonly Brush[] _tailLedBrush = new Brush[3];
@@ -56,8 +55,6 @@ internal partial class LogTabWindow : Form
5655
private LogWindow.LogWindow _currentLogWindow;
5756
private bool _firstBookmarkWindowShow = true;
5857

59-
private StatusLineEventArgs _lastStatusLineEvent;
60-
6158
private Thread _ledThread;
6259

6360
//Settings settings;
@@ -66,7 +63,6 @@ internal partial class LogTabWindow : Form
6663

6764
private bool _skipEvents;
6865

69-
private Thread _statusLineThread;
7066
private bool _wasMaximized;
7167

7268
#endregion
@@ -273,8 +269,6 @@ public void ChangeTheme(Control.ControlCollection container)
273269

274270
private delegate void FileRespawnedDelegate(LogWindow.LogWindow logWin);
275271

276-
private delegate void GuiStateUpdateWorkerDelegate(GuiStateArgs e);
277-
278272
public delegate void HighlightSettingsChangedEventHandler(object sender, EventArgs e);
279273

280274
private delegate void LoadMultiFilesDelegate(string[] fileName, EncodingOptions encodingOptions);

src/LogExpert/Controls/LogTabWindow/LogTabWindowEventHandlers.cs

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,6 @@ private void OnLogTabWindowLoad(object sender, EventArgs e)
6464
_ledThread.IsBackground = true;
6565
_ledThread.Start();
6666

67-
_statusLineThread = new Thread(StatusLineThreadFunc);
68-
_statusLineThread.IsBackground = true;
69-
_statusLineThread.Start();
70-
7167
FillHighlightComboBox();
7268
FillToolLauncherBar();
7369
#if !DEBUG
@@ -83,7 +79,6 @@ private void OnLogTabWindowClosing(object sender, CancelEventArgs e)
8379
_statusLineEventHandle.Set();
8480
_statusLineEventWakeupHandle.Set();
8581
_ledThread.Join();
86-
_statusLineThread.Join();
8782

8883
IList<LogWindow.LogWindow> deleteLogWindowList = new List<LogWindow.LogWindow>();
8984
ConfigManager.Settings.alwaysOnTop = TopMost && ConfigManager.Settings.preferences.allowOnlyOneInstance;
@@ -333,7 +328,7 @@ private void OnMultiFileToolStripMenuItemClick(object sender, EventArgs e)
333328

334329
private void OnGuiStateUpdate(object sender, GuiStateArgs e)
335330
{
336-
BeginInvoke(new GuiStateUpdateWorkerDelegate(GuiStateUpdateWorker), e);
331+
BeginInvoke(GuiStateUpdateWorker, e);
337332
}
338333

339334
private void OnColumnizerChanged(object sender, ColumnizerEventArgs e)
@@ -363,12 +358,7 @@ private void OnProgressBarUpdate(object sender, ProgressEventArgs e)
363358

364359
private void OnStatusLineEvent(object sender, StatusLineEventArgs e)
365360
{
366-
lock (_statusLineLock)
367-
{
368-
_lastStatusLineEvent = e;
369-
_statusLineEventHandle.Set();
370-
_statusLineEventWakeupHandle.Set();
371-
}
361+
StatusLineEventWorker(e);
372362
}
373363

374364
private void OnFollowTailCheckBoxClick(object sender, EventArgs e)

src/LogExpert/Controls/LogTabWindow/LogTabWindowPrivate.cs

Lines changed: 18 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -664,60 +664,30 @@ private void ProgressBarUpdateWorker(ProgressEventArgs e)
664664
}
665665
}
666666

667-
private void StatusLineThreadFunc()
667+
private void StatusLineEventWorker(StatusLineEventArgs e)
668668
{
669-
int timeSum = 0;
670-
int waitTime = 30;
671-
while (!_shouldStop)
672-
{
673-
_statusLineEventWakeupHandle.WaitOne();
674-
_statusLineEventWakeupHandle.Reset();
675-
if (!_shouldStop)
669+
if (e != null)
670+
{
671+
//_logger.logDebug("StatusLineEvent: text = " + e.StatusText);
672+
labelStatus.Text = e.StatusText;
673+
labelStatus.Size = TextRenderer.MeasureText(labelStatus.Text, labelStatus.Font);
674+
labelLines.Text = $" {e.LineCount} lines";
675+
labelLines.Size = TextRenderer.MeasureText(labelLines.Text, labelLines.Font);
676+
labelSize.Text = Util.GetFileSizeAsText(e.FileSize);
677+
labelSize.Size = TextRenderer.MeasureText(labelSize.Text, labelSize.Font);
678+
labelCurrentLine.Text = $"Line: {e.CurrentLineNum}";
679+
labelCurrentLine.Size = TextRenderer.MeasureText(labelCurrentLine.Text, labelCurrentLine.Font);
680+
if (statusStrip.InvokeRequired)
676681
{
677-
bool signaled = false;
678-
do
679-
{
680-
//this.statusLineEventHandle.Reset();
681-
signaled = _statusLineEventHandle.WaitOne(waitTime, true);
682-
timeSum += waitTime;
683-
} while (signaled && timeSum < 900 && !_shouldStop);
684-
685-
if (!_shouldStop)
686-
{
687-
timeSum = 0;
688-
try
689-
{
690-
StatusLineEventArgs e;
691-
lock (_statusLineLock)
692-
{
693-
e = _lastStatusLineEvent.Clone();
694-
}
695-
696-
BeginInvoke(StatusLineEventWorker, e);
697-
}
698-
catch (ObjectDisposedException)
699-
{
700-
//TODO needs to be handled or removed
701-
}
702-
}
682+
statusStrip.BeginInvoke(new MethodInvoker(delegate { statusStrip.Refresh(); }));
683+
}
684+
else
685+
{
686+
statusStrip.Refresh();
703687
}
704688
}
705689
}
706690

707-
private void StatusLineEventWorker(StatusLineEventArgs e)
708-
{
709-
//_logger.logDebug("StatusLineEvent: text = " + e.StatusText);
710-
labelStatus.Text = e.StatusText;
711-
labelStatus.Size = TextRenderer.MeasureText(labelStatus.Text, labelStatus.Font);
712-
labelLines.Text = $" {e.LineCount} lines";
713-
labelLines.Size = TextRenderer.MeasureText(labelLines.Text, labelLines.Font);
714-
labelSize.Text = Util.GetFileSizeAsText(e.FileSize);
715-
labelSize.Size = TextRenderer.MeasureText(labelSize.Text, labelSize.Font);
716-
labelCurrentLine.Text = $"Line: {e.CurrentLineNum}";
717-
labelCurrentLine.Size = TextRenderer.MeasureText(labelCurrentLine.Text, labelCurrentLine.Font);
718-
statusStrip.Refresh();
719-
}
720-
721691
// tailState: 0,1,2 = on/off/off by Trigger
722692
// syncMode: 0 = normal (no), 1 = time synced
723693
private Icon CreateLedIcon(int level, bool dirty, int tailState, int syncMode)

src/LogExpert/Controls/LogWindow/LogWindow.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,8 @@ internal partial class LogWindow : DockContent, ILogPaintContext, ILogView
6868
private readonly ProgressEventArgs _progressEventArgs = new();
6969
private readonly object _reloadLock = new();
7070
private readonly Image _searchButtonImage;
71-
private readonly DelayedTrigger _selectionChangedTrigger = new(200);
7271
private readonly StatusLineEventArgs _statusEventArgs = new();
7372

74-
private readonly DelayedTrigger _statusLineTrigger = new(200);
7573
private readonly object _tempHighlightEntryListLock = new();
7674

7775
private readonly Task _timeShiftSyncTask;
@@ -262,9 +260,6 @@ public LogWindow(LogTabWindow.LogTabWindow parent, string fileName, bool isTempF
262260

263261
ResumeLayout();
264262

265-
_statusLineTrigger.Signal += OnStatusLineTriggerSignal;
266-
_selectionChangedTrigger.Signal += OnSelectionChangedTriggerSignal;
267-
268263
ChangeTheme(Controls);
269264
}
270265

src/LogExpert/Controls/LogWindow/LogWindowEventHandlers.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1553,11 +1553,6 @@ private void OnMarkFilterHitsInLogViewToolStripMenuItemClick(object sender, Even
15531553
AddSearchHitHighlightEntry(p);
15541554
}
15551555

1556-
private void OnStatusLineTriggerSignal(object sender, EventArgs e)
1557-
{
1558-
OnStatusLine(_statusEventArgs);
1559-
}
1560-
15611556
private void OnColumnComboBoxSelectionChangeCommitted(object sender, EventArgs e)
15621557
{
15631558
SelectColumn();

src/LogExpert/Controls/LogWindow/LogWindowPrivate.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2578,8 +2578,6 @@ private void UpdateSelectionDisplay()
25782578
{
25792579
return;
25802580
}
2581-
2582-
_selectionChangedTrigger.Trigger();
25832581
}
25842582

25852583
private void UpdateFilterHistoryFromSettings()
@@ -2628,8 +2626,7 @@ private void SendProgressBarUpdate()
26282626

26292627
private void SendStatusLineUpdate()
26302628
{
2631-
//OnStatusLine(this.statusEventArgs);
2632-
_statusLineTrigger.Trigger();
2629+
OnStatusLine(_statusEventArgs);
26332630
}
26342631

26352632
private void ShowAdvancedFilterPanel(bool show)

src/LogExpert/Controls/LogWindow/LogWindowsPublic.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -268,9 +268,6 @@ public void CloseLogWindow()
268268
StopTimespreadThread();
269269
StopTimestampSyncThread();
270270
StopLogEventWorkerThread();
271-
_statusLineTrigger.Stop();
272-
_selectionChangedTrigger.Stop();
273-
//StopFilterUpdateWorkerThread();
274271
_shouldCancel = true;
275272

276273
if (_logFileReader != null)

0 commit comments

Comments
 (0)