@@ -50,7 +50,6 @@ public sealed partial class MainForm : Form
5050 private int _delayCount ;
5151 private bool _selectionDragging ;
5252 private DateTime _nextUpdateCheckTime ;
53- private DateTime _nextAutoResetTime ;
5453
5554 public MainForm ( )
5655 {
@@ -152,6 +151,7 @@ public MainForm()
152151 _computer . HardwareRemoved += HardwareRemoved ;
153152 _computer . Open ( _settings . IsPortable ) ;
154153
154+ backgroundUpdater . DoWork += BackgroundUpdater_DoWork ;
155155 timer . Enabled = true ;
156156
157157 UserOption showHiddenSensors = new ( "hiddenMenuItem" , false , hiddenMenuItem , _settings ) ;
@@ -457,11 +457,22 @@ public bool AuthWebServerMenuItemChecked
457457
458458 public HttpServer Server { get ; }
459459
460+ private void BackgroundUpdater_DoWork ( object sender , DoWorkEventArgs e )
461+ {
462+ _computer . Accept ( _updateVisitor ) ;
463+
464+ if ( _logSensors != null && _logSensors . Value && _delayCount >= 4 )
465+ _logger . Log ( ) ;
466+
467+ if ( _delayCount < 4 )
468+ _delayCount ++ ;
469+ }
470+
460471 private void PowerModeChanged ( object sender , Microsoft . Win32 . PowerModeChangedEventArgs eventArgs )
461472 {
462473 if ( eventArgs . Mode == Microsoft . Win32 . PowerModes . Resume || _computer . IsBatteryEnabled )
463474 {
464- _nextAutoResetTime = DateTime . Now . AddSeconds ( 3 ) ;
475+ _computer . Reset ( ) ;
465476 }
466477 }
467478
@@ -543,22 +554,13 @@ private void NodeTextBoxText_EditorShowing(object sender, CancelEventArgs e)
543554
544555 private void Timer_Tick ( object sender , EventArgs e )
545556 {
546- if ( _nextAutoResetTime != DateTime . MinValue && _nextAutoResetTime < DateTime . Now )
547- {
548- _nextAutoResetTime = DateTime . MinValue ;
549- _computer . Reset ( ) ;
550- }
551-
552557 treeView . Invalidate ( ) ;
553558 _systemTray . Redraw ( ) ;
554559 _gadget ? . Redraw ( ) ;
555560 _wmiProvider ? . Update ( ) ;
556561
557- _computer . Accept ( _updateVisitor ) ;
558- if ( _logSensors != null && _logSensors . Value && _delayCount >= 4 )
559- _logger . Log ( ) ;
560- if ( _delayCount < 4 )
561- _delayCount ++ ;
562+ if ( ! backgroundUpdater . IsBusy )
563+ backgroundUpdater . RunWorkerAsync ( ) ;
562564
563565 RestoreCollapsedNodeState ( treeView ) ;
564566
@@ -638,6 +640,7 @@ private void CloseApplication(object sender, EventArgs e)
638640
639641 Visible = false ;
640642
643+ backgroundUpdater ? . Dispose ( ) ;
641644 timer . Enabled = false ;
642645 timer ? . Dispose ( ) ;
643646
0 commit comments