如何在事件引发时存储任何值

本文关键字:存储 任何值 事件 | 更新日期: 2023-09-27 18:02:54

我想测量一下从拔掉笔记本电源到电量达到10%之间的时间。

到目前为止,我已经成功地连接了事件,但我不知道在哪里可以存储时间值,以便稍后可以进行减法。

public class Program
{
public static void Main(string[] args)
{
    SystemEvents.PowerModeChanged += OnPowerModeChanged;
    Console.ReadLine();
}
public static void OnPowerModeChanged(object sender, PowerModeChangedEventArgs e)
{
    if (SystemInformation.PowerStatus.PowerLineStatus.ToString() == "Offline")
    {
    }
}
}

如何在事件引发时存储任何值

在这种情况下,我将使用一个成员变量来存储您想要观察的DateTimes。

public class Program
{
private static DateTime startTime;
public static void Main(string[] args)
{
    SystemEvents.PowerModeChanged += OnPowerModeChanged;
    Console.ReadLine();
}
public static void OnPowerModeChanged(object sender, PowerModeChangedEventArgs e)
{
    if (SystemInformation.PowerStatus.PowerLineStatus.ToString() == "Offline")
    {
        this.startTime = DateTime.Now();
    }
}
}

使用DateTimes还取决于您想要的准确度。如果你谈论的是在几秒钟内测量任何东西,我建议使用System.Diagnostics.Stopwatch代替。