@@ -50,6 +50,7 @@ public sealed partial class MainForm : Form
5050 private int _delayCount ;
5151 private bool _selectionDragging ;
5252 private DateTime _nextUpdateCheckTime ;
53+ private DateTime _nextAutoResetTime ;
5354
5455 public MainForm ( )
5556 {
@@ -151,7 +152,6 @@ public MainForm()
151152 _computer . HardwareRemoved += HardwareRemoved ;
152153 _computer . Open ( _settings . IsPortable ) ;
153154
154- backgroundUpdater . DoWork += BackgroundUpdater_DoWork ;
155155 timer . Enabled = true ;
156156
157157 UserOption showHiddenSensors = new ( "hiddenMenuItem" , false , hiddenMenuItem , _settings ) ;
@@ -438,7 +438,7 @@ public MainForm()
438438 FormClosed += CloseApplication ;
439439 // Make sure the settings are saved when the user logs off
440440 Microsoft . Win32 . SystemEvents . SessionEnded += ( _ , _ ) => CloseApplication ( null , EventArgs . Empty ) ;
441- // Microsoft.Win32.SystemEvents.PowerModeChanged += PowerModeChanged;
441+ Microsoft . Win32 . SystemEvents . PowerModeChanged += PowerModeChanged ;
442442 }
443443
444444 private void StopFileHardwareMenuFromClosing ( object sender , ToolStripDropDownClosingEventArgs e )
@@ -457,24 +457,11 @@ 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-
471460 private void PowerModeChanged ( object sender , Microsoft . Win32 . PowerModeChangedEventArgs eventArgs )
472461 {
473- if ( eventArgs . Mode == Microsoft . Win32 . PowerModes . Resume && _computer . IsBatteryEnabled )
462+ if ( eventArgs . Mode == Microsoft . Win32 . PowerModes . Resume || _computer . IsBatteryEnabled )
474463 {
475- _computer . IsBatteryEnabled = false ;
476- _computer . IsBatteryEnabled = true ;
477- //_computer.Reset();
464+ _nextAutoResetTime = DateTime . Now . AddSeconds ( 3 ) ;
478465 }
479466 }
480467
@@ -556,13 +543,22 @@ private void NodeTextBoxText_EditorShowing(object sender, CancelEventArgs e)
556543
557544 private void Timer_Tick ( object sender , EventArgs e )
558545 {
546+ if ( _nextAutoResetTime != DateTime . MinValue && _nextAutoResetTime < DateTime . Now )
547+ {
548+ _nextAutoResetTime = DateTime . MinValue ;
549+ _computer . Reset ( ) ;
550+ }
551+
559552 treeView . Invalidate ( ) ;
560553 _systemTray . Redraw ( ) ;
561554 _gadget ? . Redraw ( ) ;
562555 _wmiProvider ? . Update ( ) ;
563556
564- if ( ! backgroundUpdater . IsBusy )
565- backgroundUpdater . RunWorkerAsync ( ) ;
557+ _computer . Accept ( _updateVisitor ) ;
558+ if ( _logSensors != null && _logSensors . Value && _delayCount >= 4 )
559+ _logger . Log ( ) ;
560+ if ( _delayCount < 4 )
561+ _delayCount ++ ;
566562
567563 RestoreCollapsedNodeState ( treeView ) ;
568564
@@ -642,7 +638,6 @@ private void CloseApplication(object sender, EventArgs e)
642638
643639 Visible = false ;
644640
645- backgroundUpdater ? . Dispose ( ) ;
646641 timer . Enabled = false ;
647642 timer ? . Dispose ( ) ;
648643
0 commit comments