|
|
|
Отображение процесса загрузки
|
|||
|---|---|---|---|
|
#18+
В стартовом файле загружаются RV как с SQL-сервера, так и из Access-таблиц. Процесс этот затрачивает время и складывается ситуация, что программа виснет. Но это же не так. Поэтому решил создать класс на базе формы, куда положил термометр (отображает процентный процесс загрузки) и Label (показывает какая таблица загружается). На тестовом примере все идет как надо: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 16:59 |
|
||
|
Отображение процесса загрузки
|
|||
|---|---|---|---|
|
#18+
После каждой команды o_start.Term1.Procent1() добавь команду DOEVENTS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 17:13 |
|
||
|
Отображение процесса загрузки
|
|||
|---|---|---|---|
|
#18+
ВладимирМПосле каждой команды o_start.Term1.Procent1() добавь команду DOEVENTS Спасибо ВладимирМ! Причем оказалось не просто Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 07:33 |
|
||
|
Отображение процесса загрузки
|
|||
|---|---|---|---|
|
#18+
А меня все таки заинтересовал вопрос: "Почему VFP без команды Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2006, 07:44 |
|
||
|
Отображение процесса загрузки
|
|||
|---|---|---|---|
|
#18+
Именно что "не успевает отобразить". Т.е. сам процесс приращения "термометра" происходит как положено. Все числовые значения присваиваются. Но, после присвоения значения необходимо еще выполнить обновление "картинки". Вот тут-то и происходит "засада". Обновление картинки - это отдельный процесс, который ставится, как и все процессы, в некоторую "очередь процессов". Другими словами, выполняется не сразу, в момент подачи команды на обновление картинки, а только после того, как до нее дойдет очередь. Выполняться все те процессы, которые стоят перед ней в списке процессов. Судя по всему, процесс обновления происходит не сразу, а с некоторой временнОй задержкой. Точнее, в тот момент, когда система переходит в режим ожидания действий пользователя. Получается такая последовательность выполнения процессов: Выполняются все функции открытия таблиц. После чего выполняются накопленные процессы обновления картинки. DOEVENTS как раз и призвана "поломать" штатный механизм распределения заданий в очереди и "пропихнуть" все те процессы, которые есть сейчас в стеке событий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2006, 12:48 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33554357&tid=1592302]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
3ms |
track hit: |
158ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 455ms |

| 0 / 0 |
