private static void DetermineWorkloads() { BatteryStatus batteryStatus = PowerManager.BatteryStatus; int remainingCharge = PowerManager.RemainingChargePercent; PowerSupplyStatus powerStatus = PowerManager.PowerSupplyStatus; PowerSourceKind powerSource = PowerManager.PowerSourceKind; if ((powerSource == PowerSourceKind.DC && batteryStatus == BatteryStatus.Discharging && remainingCharge < 25) || (powerSource == PowerSourceKind.AC && powerStatus == PowerSupplyStatus.Inadequate)) { // The device is not in a good battery/power state, // so we should pause any non-critical work. PauseNonCriticalWork(); } else if ((batteryStatus != BatteryStatus.Discharging && remainingCharge > 75) && powerStatus != PowerSupplyStatus.Inadequate) { // The device is in good battery/power state, // so let's kick of some high-power work. StartPowerIntensiveWork(); } }
private static void PowerManager_PowerSourceKindChanged(object sender, object e) { PowerSourceKind powerSource = PowerManager.PowerSourceKind; OutputMessage($"Power source kind changed: {powerSource}"); DetermineWorkloads(); }