private void fetchReportOnInterval(object state) { lock (lockHandle) { try { var gain = plugInterface.Send <AdjustGain>(new AdjustGain()); VGain = gain.VGain; IGain = gain.IGain; var usage = plugInterface.Send <GetRealtime>(new GetRealtime()); Current = usage.Current; Voltage = usage.Voltage; Power = usage.Power; TotalPower = usage.Total; Updated?.BeginInvoke(this, null, null); } catch (Exception any) { Exception?.Invoke(this, any); } } }