@@ -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 )
0 commit comments