Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
18.03.2015, 17:38
|
|||
---|---|---|---|
|
|||
Отмена обновления данных |
|||
#18+
В приложении существует следующий подход:Есть некий синглтон класс в нем по таймеру берутся данные из БД-> обрабатываются,записываются в публичные свойства->вызываются событию(на него заблаговременно подписаны обработчики из форм), берутся данные из свойств синглтона и отображают. Но есть проблема в актуальности данных. К примеру форма удаляет запись,но так как таймер работавший в этот момент уже получил данные с удаленной записью-эта запись появляется в интерфейсе заново. Я пробовал решать эту проблему с помощью Task и CancellationToken, на этапе взятия данных из бд и их обработки всё срабатывает,но начали вызываться методы подписанные на событие,то тут я затруднаюсь какой подход использовать(передавать и туда токен как то странно). Подскажите,может есть уже принятые подходы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.03.2015, 14:46
|
|||
---|---|---|---|
Отмена обновления данных |
|||
#18+
sergei64_89В приложении существует следующий подход:Есть некий синглтон класс в нем по таймеру берутся данные из БД-> обрабатываются,записываются в публичные свойства->вызываются событию(на него заблаговременно подписаны обработчики из форм), берутся данные из свойств синглтона и отображают. Но есть проблема в актуальности данных. К примеру форма удаляет запись,но так как таймер работавший в этот момент уже получил данные с удаленной записью-эта запись появляется в интерфейсе заново. Я пробовал решать эту проблему с помощью Task и CancellationToken, на этапе взятия данных из бд и их обработки всё срабатывает,но начали вызываться методы подписанные на событие,то тут я затруднаюсь какой подход использовать(передавать и туда токен как то странно). Подскажите,может есть уже принятые подходы. Достаточно спорный подход к обновлению данных. К примеру: пользователь работает с объектом (строкой из базы). Связывает с другими в течении часа-полтора. Какой-то добрый человек взял и удалил эту строку на стороне базы, при апдейте по таймеру и переназначению DataSource думаю пользователю вылетит куча ошибок. В моей практике в ERP системах не требуется частое обновление информации с БД. Оно происходит по требованию (например нажатие кнопки обновить/открытии формы). Вы бы немного больше информации привели про вашу систему и насколько важна критичность обновления данных. Может быть в вашем случае вам помогут блокировки в БД. Чтобы не могли удалить/изменить данные другие пользователи, в момент когда они корректируются другим. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&tablet=1&tid=1401778]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
79ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 179ms |
0 / 0 |