我正在尝试编写一个简单的程序来检查电池状态。我有一个计时器,每秒都会打勾,我写了一些代码,但我认为它不是最有效的。 1.我不知道是不是这样,我怎么检查电池的百分比是否与之前一秒相同,是对的。 2.如果我没有检查MsgBox,那么Label2和MsgBox文本中的百分比信息不会更新。
class Battery
{
public static int BatteryPercentage()
{
PowerStatus ps = SystemInformation.PowerStatus;
int percentage = Convert.ToInt32(ps.BatteryLifePercent * 100);
return percentage;
}
}
public static class MyClass
{
public static int LastPer { get; set; }
}
private void timer1_Tick(object sender, EventArgs e)
{
int per = Battery.BatteryPercentage();
label2.Text = per.ToString();
progressBar1.Value = per;
if (MyClass.LastPer == 0)
{
MyClass.LastPer = per;
}
else if (MyClass.LastPer > per && per <= 100)
{
MessageBox.Show("Battery is almost empty, remain " + per.ToString() + "!" );
}
}
答案 0 :(得分:2)
我认为摆脱计时器并订阅Windows.Devices.Power.Battery类的报告更新事件会更有效。
的影响
Battery.ReportUpdated += BatteryChargeLevelChanged;
public void BatteryChargeLevelChanged(object sender, EventArgs e)
{
// show your message if the charge is low
}