/// <summary> /// Отправка значений подписчикам /// </summary> /// <param name="updateTree">True, если клиенту необходимо обновить структуру дерева, False в противном случае</param> private void PushValuesToClients(bool updateTree = false) { ValuesPusherComet.SetEvent(new UpdateInfo { ChangedValues = new List <BaseObject>(_changedValues), UpdateObjectTree = updateTree }); _changedValues.Clear(); }
public Stream GetChanges() { var arg = new UpdateInfo(); string clientId = Guid.NewGuid().ToString(); ValuesPusherComet.RegisterCometInstance(clientId, this); if (_ev.WaitOne(Comet.TimeOut)) { lock (typeof(Comet)) { arg = _message; } } Comet.UnregisterCometInstance(clientId); var myResponseBody = JsonConvert.SerializeObject(arg); WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8"; return(new MemoryStream(Encoding.UTF8.GetBytes(myResponseBody))); }