Cześć, komunikującą się asynchronicznie przez TCP do tego celu korzystam z "SuperSimpleTCP". Jest to aplikacja WPF i staram się trzymać wzorca MVVM. Klasy ViewModel mam w osobnym projekcie cała komunikacja w obrębie projektu odbywa się bez problemu do momentu gdy aktualizowane są dane otrzymane od klientów TCP, wyrzuca wtedy błąd(dzieje się to podczas dodawania/usuwania elementu "ObservableCollection"):
System.NotSupportedException: 'Ten typ CollectionView nie obsługuje zmian własnej kolekcji SourceCollection z wątku innego niż Dispatcher.'

Normalnie użyłbym do tego Dispatchera jednak przy takiej strukturze aplikacji nie mam do niego dostępu, i tu pojawia się pytanie co zrobić w takim wypadku albo jakiego rozwiązania szukać?

  public ObservableCollection<SensorViewModel> AddToList(ObservableCollection<SensorViewModel> list)
        {
            if (list != null)
            {
                var toRemove = list.Where(s => s.Id == this.Id).ToList();
                foreach (var sensor in toRemove)
                {
                    list.Remove(sensor);//<<<<<<<<-------- Miejsce wystąpienia błędu
                }
            }   

            list.Add(this);

            var sortedList = list.OrderBy(s => s.Id);

            ObservableCollection<SensorViewModel> listOut = new ObservableCollection<SensorViewModel>();
            foreach (var sensor in sortedList)
            {
                listOut.Add(sensor);
            }
            saveToFile(listOut);
            return listOut; 

        }