![]() |
|
Модераторы: Akina |
![]()
|
|
| Feliastre |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 17.11.2004 Репутация: нет Всего: нет |
У меня проблема: генерация отчёта занимает много времени. Надо сделать кнопку отменить. В дельфи я реализовывал мульти поточность. В С++ просто добавлял цикл обработки сообщений. А что делать в ВБ6?
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
А это смотря как ты организовал генерацию отчета.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| efedron |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 16.3.2005 Репутация: 4 Всего: 4 |
а вот тебе и многопоточность:
--------------------
Прежде чем совершить акт разрезания определенной материи целесообразно удостовериться в правильности всех произведенных измерений. |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 7 Всего: 186 |
Время от времени добавлять в код DoEvents()
Добавлено @ 16:11
по-моему ему не многопоточность нужна, а проверка, нажал ли юзер кнопку Cancel |
|||
|
||||
| efedron |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 16.3.2005 Репутация: 4 Всего: 4 |
Run-time error
ну можно, конечно, doevents использовать, но это существенно снизит скорость выполнения процедуры... --------------------
Прежде чем совершить акт разрезания определенной материи целесообразно удостовериться в правильности всех произведенных измерений. |
|||
|
||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Чтобы не снижать критично, размещаем DoEvents не непосредственно в цикле, а во внутренней конструкции типа:
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| Feliastre |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 17.11.2004 Репутация: нет Всего: нет |
efedron угу... почти работает... только при закрытии отрубаецца...
Akina класс!!! Работает!!! |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Feliastre, с потоками в VB6 полная з%:ица. Как-то пытался с этим всем разобраться и понял, что лучше без многопоточности
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| Feliastre |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 17.11.2004 Репутация: нет Всего: нет |
D этой же теме хочу спросить ещё одно. Я делаю запрос из базы через компоненты ADO:
Только сам запрос не просто один селект, а примерно на две страницы. соответственно выборка данных происходит ДОЛГО. Можно ли открывать Рекордсет асинхронно? |
|||
|
||||
| Mephisto |
|
|||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: 2 Всего: 34 |
Я как-то читал литературку от майкрософта про вб, там написано что компилятор сам создает некую структуру потоков, и добавлять свои, либо удалять существующие они не рекомендуют.
Это касается версий 4,5,6. В вб.нет мультипоточнось допустима! Добавлено @ 12:02 Akina, держи +1. |
|||
|
||||
| efedron |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 16.3.2005 Репутация: 4 Всего: 4 |
Akina
такое использование doevents известно, но я предпочитаю создавать отдельный поток..ну не знаю..больше нравится мне что-ли --------------------
Прежде чем совершить акт разрезания определенной материи целесообразно удостовериться в правильности всех произведенных измерений. |
|||
|
||||
| Feliastre |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 17.11.2004 Репутация: нет Всего: нет |
efedron ну а ты можешь предложить работающий пример потоков. То что ты предложил - не пашет.
|
|||
|
||||
| Mephisto |
|
||||||||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: 2 Всего: 34 |
Не люблю повторятся, но:
Проверено, очень часто сами слетают. Необходимо выравнивать ручками. Вылетают, причем, в самых неожиданных местах. Добавлено @ 10:18 efedron, поправь запись:
Хоть бы на эту:
|
||||||||
|
|||||||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 7 Всего: 186 |
Akina, в чем проблема твоего кода: проверка происходит раз в 1000 проходов цикла. Я придумал решение: ф-ция GetInputState возвр. не ноль, если было сообщение от мыши или клавы.
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Run-time error
Ну на самом деле я кусок-то диранул из цикла, который еще до кучи прогрессором управлял... там оно было проще как я сделал. По сути же согласен с тобой полностью - твой код лучше. Впрочем для тех кто с API боится или что (или времени нет вспоминать) и мой сойдет. Только код поправь - в декларации алиас тут не нужен... и отпиши чтобы в ФАК вставили. PS. Впрочем есть еще один момент, который мой код разруливает, а твой нет - это тормоза перерисовки неактивных элементов экрана. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |