C# 每个刻度比较两个变量
我想写一个简单的程序来检查电池状态。我有一个计时器,它每秒钟都在滴答作响,我写了一些代码,但我认为它不是最有效的。 1.我不知道是否是这样,我如何检查电池的百分比是否与前一秒相同,是正确的。 2.如果我不检查MsgBox,则Label2和MsgBox文本中的百分比信息不会更新C# 每个刻度比较两个变量,c#,C#,我想写一个简单的程序来检查电池状态。我有一个计时器,它每秒钟都在滴答作响,我写了一些代码,但我认为它不是最有效的。 1.我不知道是否是这样,我如何检查电池的百分比是否与前一秒相同,是正确的。 2.如果我不检查MsgBox,则Label2和MsgBox文本中的百分比信息不会更新 class Battery { public static int BatteryPercentage() { PowerStatus ps = Syste
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() + "!" );
}
}
class电池
{
公共静态int BatteryPercentage()
{
PowerStatus ps=SystemInformation.PowerStatus;
整数百分比=转换为32(ps.BatteryLifePercent*100);
回报率;
}
}
公共静态类MyClass
{
公共静态int LastPer{get;set;}
}
私有无效计时器1_刻度(对象发送方,事件参数e)
{
int per=电池。电池电量();
label2.Text=per.ToString();
progressBar1.值=每;
如果(MyClass.LastPer==0)
{
MyClass.LastPer=per;
}
否则,如果(MyClass.LastPer>per&&per我认为取消计时器并订阅Windows.Devices.Power.Battery类的报告更新事件会更有效
大意是
Battery.ReportUpdated += BatteryChargeLevelChanged;
public void BatteryChargeLevelChanged(object sender, EventArgs e)
{
// show your message if the charge is low
}
您不应在计时器事件中使用MessageBox.Show(要进行调试,请使用Console.WriteLine)。在所有情况下,请在计时器1的开头禁用计时器,并在结尾重新启用它。还应将“MyClass.LastPer>per”替换为“MyClass.LastPer