private void GetValue(object state) { if (_device.DeviceIsDead) { state = null; _timer.Dispose(); return; } try { if (OnNewValue == null) { return; } var temp = GetTemperature(); Task.Run(() => OnNewValue.Invoke(temp)); } catch (Exception) { //ignore } }