Я создаю однооконное приложение WPF
В окне есть список элементов (которые сохраняются в базе данных, конечно)
Периодически мне нужно запускать фоновую задачу, которая обновляет базу данных из канала Atom. Когда каждый новый элемент добавляется в базу данных, список в пользовательском интерфейсе также должен обновляться, чтобы отразить это. Я не хочу, чтобы эта фоновая задача замедляла пользовательский интерфейс, но в то же время она должна взаимодействовать с пользовательским интерфейсом.
Прочитав множество статей и увидев множество простых примеров, я все еще не уверен, как лучше это реализовать.
То, что я думаю, возможно, я мог бы сделать:
В событии Window_Loaded создайте DispatchTimer.
Когда происходит событие Tick, вызовите метод UpdateDb ().
UpdateDB () получит элементы из ленты Atom и добавит их в базу данных. Когда я перебираю каждый элемент, я буду вызывать другой метод для повторного связывания списка с базой данных, чтобы он "обновлялся".
Когда все задачи завершены, сбросьте DispatchTimer ??? (не уверен, что это можно / нужно / нужно сделать).
Помните, что это фоновая задача, поэтому пользователь может одновременно использовать пользовательский интерфейс.
Как это звучит?
Спасибо.