|
|
|
Непонятности с асинхронным запросом
|
|||
|---|---|---|---|
|
#18+
Вечер добрый. Вот с таким я к вам вопросом. Мне нужно выполнить запрос асинхронно. Причем не только выполнить, но и заполнить данными, тоже асинхронно. Т.е. обычный ленивый путь (в FetchProgress рисовать индикатор, а в FetchComplete использовать данные) не годится, нужно загружать данные уже в FetchProgress. Сделал такую обработку: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Если Background Fetch Size = 1, то по непонятной причине курсор прыгает примерно таким образом (значения AbsolutePosition): 1, 2, 3, 2, 3, 4, 5, 3, 4, 5, 6, 7, 4, 5, 6, 7, 8, 9, ... С какого перепугу образуется такая прогрессия, нижняя граница которой увеличивается на один, а верхняя на два, я так и не понял. Ткнув пальцем в небо предположу, что рекурсивные вызовы события перекрывают друг друга. Чтобы процедура получилась универсальной и работала и при размере буфера равном 1, пришлось вводить такие костыли: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Система Windows 2000 со всеми обновлениями, ADO 2.8. ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 23:26 |
|
||
|
Непонятности с асинхронным запросом
|
|||
|---|---|---|---|
|
#18+
Это не костыль, это правильно. FetchProgress не обязана запускаться на каждую полученую запись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 01:27 |
|
||
|
Непонятности с асинхронным запросом
|
|||
|---|---|---|---|
|
#18+
Да пусть запускается хоть через десять записей. Просто в следующий раз Progress будет на 10 больше. Но у меня то получается совсем не то? Progress всегда только на 1 больше, т.е. FetchProgress запускается на каждую запись. А вот AbsolutePosition почему-то меняется произвольно между вызовами события. ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 08:18 |
|
||
|
|

start [/forum/topic.php?fid=60&gotonew=1&tid=2165053]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
209ms |
get topic data: |
14ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 572ms |

| 0 / 0 |
