public void HeartbeatReceived(Heartbeat heartbeat) { Action w = () => { if (!_hearbeatIndex.ContainsKey(heartbeat.Key)) { Heartbeats.Add(new SelectableDataItem(heartbeat.Message)); _hearbeatIndex.TryAdd(heartbeat.Key, heartbeat); } else { var item = Heartbeats.FirstOrDefault(s => s.Value.ToString().Contains(heartbeat.Key)); item.Value = heartbeat.Message; _hearbeatIndex.AddOrUpdate(heartbeat.Key, heartbeat, (n, oldValue) => heartbeat); // resuscitate if (heartbeat.Key == StaleModule) { HeartbeatLost = Visibility.Collapsed; } } }; DispatcherFacade.AddToDispatcherQueue(w); }
public void HandleHeartbeat(Heartbeat heartbeat) { Heartbeat = heartbeat; Heartbeats.Add(heartbeat); ChartModel.InvalidatePlot(true); }