/// <summary> /// Performs calculation then fires the <see cref="MeasurementUpdated"/> event. /// </summary> protected override void Calculate(int rawPressure, int rawTemperature) { // Perform calculation base.Calculate(rawPressure, rawTemperature); // Fire event MeasurementUpdated?.Invoke(this, Measurement); }
/// <summary> /// Performs calculation on the device then fires the <see cref="MeasurementUpdated"/> event. /// </summary> public BarometerMeasurement Update() { // Thread-safe lock lock (_lock) { // Perform calculation _device.Update(); var measurement = new BarometerMeasurement(_device.Pressure, _device.Temperature); // Update property Measurement = measurement; // Fire event MeasurementUpdated?.Invoke(this, measurement); // Return result return(measurement); } }