private void EventsSubscribeThread() { var connectionParameters = _connectionParametersModel.ConnectionParameter; var eventIdForfilter = _selectedEventforFilter != null && _selectedEventforFilter.Id != Guid.Empty ? _selectedEventforFilter.Id.ToString() : string.Empty; if (eventIdForfilter != string.Empty) { eventIdForfilter = string.Concat("&filter=", eventIdForfilter); } var channeldId = _channelsViewModel.SelectedChannelId; var channelIdForFilter = string.Empty; if (channeldId != Guid.Empty) { channelIdForFilter = string.Concat("&channelid=", channeldId); } var url = String.Format(EventsUrl, connectionParameters.ServerIp, connectionParameters.Port, connectionParameters.Login, Md5Helper.Md5Hash(connectionParameters.Password), eventIdForfilter, channelIdForFilter); _urlViewer.Url = url; using (var streamToRead = _webRequestFactory.CreateInifinityWebRequest(url)) { if (streamToRead == null) { return; } var stringBuilder = new List <string>(); using (var sr = new StreamReader(streamToRead)) { while (_isStarted) { try { string line = sr.ReadLine(); if (string.IsNullOrEmpty(line)) { stringBuilder.Clear(); continue; } stringBuilder.Add(line); if (line == "}") { var subscribedEvent = JsonEventParser.ParseEventFromJsonPaylaod(stringBuilder); OnIncomingNewEvent(subscribedEvent); Thread.Sleep(1000); } //Thread.Sleep(1000); } catch (Exception) { Thread.Sleep(1000); } } } } }