(Как оправдание - я никогда не работал с потоками, поэтому приведенное ниже описание - просто идея, которую я хочу, чтобы вы критиковали)
Обзор задачи:
- есть список некоторых объектов
- Нам нужно проверить, был ли объект каким-либо образом изменен
- Если оно было изменено - применить логику (например, показать уведомление).
Вот как я думаю, это должно быть реализовано:
Мы создаем таймер, срабатывающий каждую минуту, который пересекает список объектов и находит объекты, которые необходимо проверить. После этого мы добавляем этот объект (или, если быть точным, какой-то объект задачи, содержащий описание объекта и задачи: проверить, обновлялся ли он) в очередь.
Работник (какой-то поток в пуле потоков) ждет, пока что-то будет добавлено в очередь, а после того, как это произойдет, - берет задачу и обрабатывает ее: проверяет, был ли объект изменен. Если это так - это добавляет еще одну задачу, уведомление один. И теперь другой работник, который обрабатывает задачи уведомлений, при необходимости выполнит эту задачу.
Итак, это совершенно неверная идея? Что можно улучшить или изменить здесь?
UPD : согласно первому ответу: объект зависит от некоторого ресурса repote, а «изменение» означает, что некоторые удаленные данные изменились (или изменились каким-либо особым образом). Так что это не может быть решено с помощью INotifyPropertyChanged
.