private void ServiceBusViewUpdate(int i) { serviceBus.SetServer(i); if (!isUpdatingServiceBus) { Task.Run(async() => { if (serviceBusTokenSource.Token.IsCancellationRequested) { serviceBusTokenSource.Token.ThrowIfCancellationRequested(); } else { List <BusQueue> bq = null; while (true) { if (serviceBus.IsRunning == false) { await Task.Delay(TimeSpan.FromSeconds(5)); } lock (lockCollectionQ) { //bq = serviceBus.GetGetQueues(); } socket.SendLogToUser("bus", bq); var x1 = new ObservableCollection <BusQueue>(bq).OrderByDescending(x => x.Active); var x2 = new ObservableCollection <BusQueue>(bq).OrderByDescending(x => x.DeadLetter); if (bq != null && bq.Count() > 0) { Dispatcher.Invoke(() => { ActiveMessageListView.ItemsSource = x1; ActiveMessageListView.Items.Refresh(); DeadletterView.ItemsSource = x2; DeadletterView.Items.Refresh(); }, System.Windows.Threading.DispatcherPriority.Background); } Task.Delay(TimeSpan.FromSeconds(7)).Wait(); } } }, serviceBusTokenSource.Token); } Task.Run(async() => { if (serviceBusTokenSource.Token.IsCancellationRequested) { serviceBusTokenSource.Token.ThrowIfCancellationRequested(); } else { List <BusTopic> bq = null; while (true) { if (serviceBus.IsRunning == false) { await Task.Delay(TimeSpan.FromSeconds(5)); } lock (lockCollectionQ) { bq = new List <BusTopic>(serviceBus.GetGetTopics()); } socket.SendLogToUser("topics", bq); try { //var x1 = new ObservableCollection<BusTopic>(bq.GroupBy(g => g.Worker) // .Select(s => // new BusTopic( // s.Key, // s.Where(f => f.Name == s.Key) // .Select(l => l.Name) // .FirstOrDefault(), // s.Sum(ss => ss.Active), // s.Sum(ss => ss.DeadLetter) // ) // )) // .OrderByDescending(order => order.Active); var x2 = new ObservableCollection <BusTopic>(bq) .OrderByDescending(x => x.Active); if (bq != null && bq.Count() > 0) { Dispatcher.Invoke(() => { //TopicsView.ItemsSource = x1; //TopicsView.Items.Refresh(); TopicSubscriptionsView.ItemsSource = x2; TopicSubscriptionsView.Items.Refresh(); }, System.Windows.Threading.DispatcherPriority.Background); } await Task.Delay(TimeSpan.FromMinutes(1)); }catch (Exception e) { MessageBox.Show(e.Message); } } } }, serviceBusTokenSource.Token); }