fix: 修复软件未完全退出问题

This commit is contained in:
2026-01-19 10:08:07 +08:00
parent fe47293da5
commit 0ab770d464
2 changed files with 16 additions and 13 deletions

View File

@@ -1,5 +1,6 @@
using System;
using System.Windows.Forms;
using Microsoft.Win32;
namespace TimerApp
{
@@ -38,6 +39,8 @@ namespace TimerApp
_timer = new System.Windows.Forms.Timer();
_timer.Interval = 1000; // 1秒检查一次
_timer.Tick += Timer_Tick;
SystemEvents.PowerModeChanged += OnPowerModeChanged;
}
public void Start()
@@ -223,9 +226,21 @@ namespace TimerApp
if (_disposed) return;
_disposed = true;
SystemEvents.PowerModeChanged -= OnPowerModeChanged;
_timer.Stop();
_timer.Tick -= Timer_Tick;
_timer.Dispose();
}
private void OnPowerModeChanged(object sender, PowerModeChangedEventArgs e)
{
if (e.Mode == PowerModes.Resume)
{
// 系统唤醒时,强制重置媒体播放检测状态,
// 避免因检测线程挂起导致一直误报“正在播放”而无法进入工作状态。
NativeMethods.InvalidateMediaCache();
}
}
}
}