Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Исключение вылезает за try-except, Почему? 
V
    Опции темы
kami
Дата 22.10.2013, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



Цитата(bems @  22.10.2013,  15:36 Найти цитируемый пост)
в котором нет гуя

При чем здесь гуй?
У меня в сабжевом потоке крутятся:
- окно таймера
- окно, к которому привязан IWebBrowser (да и сам IWB кучу всего похоже создает)
- окно обслуживания синхронизации данных между потоками (что-то типа коллбаков хуков в Винде).
И ничего из этого не является GUI. Но всем этим окнам нужно обрабатывать сообщения (особенно - второму и третьему).

Добавлено через 1 минуту и 50 секунд
Цитата(kami @  22.10.2013,  09:50 Найти цитируемый пост)
Понятно. Мне больше бы подошло RegisterWaitForSingleObject, с которым так и недопереразобрался. Тормозить очередь сообщений на WaitFor - не комильфо.
Спасибо.

Только сейчас дошло: спасибо было сказано безо всякого подтекста - действительно за напоминание такой возможности.
PM MAIL WWW   Вверх
bems
Дата 22.10.2013, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



ну понятно, но речь идет об отдельном потоке-таймере. если не хочешь - RegisterWaitForSingleObject
в чем проблема я не пойму?

Цитата(kami @  22.10.2013,  15:51 Найти цитируемый пост)
окно, к которому привязан IWebBrowser (да и сам IWB кучу всего похоже создает)
ну для ком-тредов есть CoWaitForMultipleHandles



--------------------
Обижено школьников: 8
PM MAIL   Вверх
kami
Дата 22.10.2013, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



Цитата(bems @  22.10.2013,  15:58 Найти цитируемый пост)
но речь идет об отдельном потоке-таймере. 

Изначально речь шла о не-джентльменском поведении стандартного TTimer в потоке smile 
А потом уже Akella привел код потока-таймера. Я же (наверное, некорректно) написал, что такой подход не совсем вписывается в задачу моего потока.


Цитата(bems @  22.10.2013,  15:58 Найти цитируемый пост)
в чем проблема я не пойму?

Да проблемы-то уже и нет, она решена
Цитата(kami @  21.10.2013,  11:43 Найти цитируемый пост)
В общем и целом - вопрос решен:Цитата(Alexeis @  17.10.2013,  09:18 ) В данном случае проще свой класс таймера написать.


Просто было интересен код, который предложил Akella 
Цитата(Akella @  17.10.2013,  09:51 Найти цитируемый пост)
Если что, у меня есть готовый пример.

Вот беседа немножко и подзатянулась.
PM MAIL WWW   Вверх
Akella
Дата 22.10.2013, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 8
Всего: 329



Цитата(kami @ 22.10.2013,  14:40)
Цитата(Akella @  22.10.2013,  14:22 Найти цитируемый пост)
не понял

Если (как, допустим, в примере) ставить в WaitFor dwMilliseconds = 1000, то получается, что ни одно окно (из числа созданных в этом потоке) целую секунду не сможет получить ни одного сообщения.

Обычно в потоке выполняют работу безо всяких окон.
Это отдельный поток.
У меня в отдельном потоке таким образом выполняется процедура экспорта в XML и отправка данных на хостинг.
В другом приложении программа в отдельном потоке раз в минуту выполняет (образно говоря) idHttp.Get(...), при этом, пользователь спокойно работает с программой, даже не замечая, что выполняется что-то в отдельном потоке раз в минуту.

или я тебя не понял?
PM MAIL   Вверх
kami
Дата 23.10.2013, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



Цитата(Akella @  22.10.2013,  22:11 Найти цитируемый пост)
или я тебя не понял?

Да вроде всё правильно.
Тем не более, я не согласен с утверждением 
Цитата(Akella @  22.10.2013,  22:11 Найти цитируемый пост)
Обычно в потоке выполняют работу безо всяких окон.
 У меня редко когда получается без них обойтись.
Под "окнами в потоках" я понимаю всё созданное через AllocateHWND и/или CreateWindow[Ex]...

PM MAIL WWW   Вверх
bems
Дата 23.10.2013, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



Цитата(kami @  23.10.2013,  12:42 Найти цитируемый пост)
У меня редко когда получается без них обойтись.

у меня чаще получается чем не получается, но у тебя же webbrowser control живёт в этом треде, а com-объекты требуют обработки сообщений в своём apartment-треде, тут ничего не сделаешь. смотри в сторону CoWaitForMultipleHandles или обрабатывай WM_TIMER руками


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0625 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.