Работа с ObservableCollection в отдельном потоке - C#

Узнай цену своей работы

Формулировка задачи:

Пусть имеется класс TimeWorker, в котором лежит
private ObservableCollection<DObject> dObjects;
public ObservableCollection<DObject> DObjects
        {
            get { return dObjects; }
        }
При запуске приложения создается отдельный поток, в котором создается экземпляр этого класса, к DataGrid через ItemSource привязывается эта самая коллекция, и запускается метод Work, который работает дальше постоянно. Чтобы была возможность добавлять (удалять) элементы в эту коллекцию, приходится писать нечто такое
public void RemoveObject(DObject dObject)
        {
            Application.Current.Dispatcher.Invoke(new Action(() =>
                this.dObjects.Remove(dObject)
                ));
        }
Это работает, но мне кажется, что так делать не очень правильно. Может есть более лаконичное решение?

Решение задачи: «Работа с ObservableCollection в отдельном потоке»

textual
Листинг программы
[WpfThread]
public void RemoveObject(DObject dObject)
        {
                this.dObjects.Remove(dObject);
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы