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