public void NotifyServer(EventDataType eventData) { lock (locker) { var inactiveClients = new List<string>(); foreach (var client in clients) { if (client.Key != eventData.ClientName) { try { client.Value.BroadcastToClient(eventData); } catch (Exception ex) { inactiveClients.Add(client.Key); } } } if (inactiveClients.Count > 0) { foreach (var client in inactiveClients) { clients.Remove(client); } } } }
public void BroadcastToClient(EventDataType eventData) { syncContext.Post(new System.Threading.SendOrPostCallback(OnBroadcast), eventData); }