Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Вниз

try..except   Найти похожие ветки 

 
Leonid Troyanovsky ©   (2005-10-20 13:44) [40]


> е1   (20.10.05 13:09) [37]

> И не только промолчал, но и не привел никаких аргументов
> в пользу своей точки зрения, т.е. - потрындел немного.


Во-первых, свою точку зрения я обосновал
(есть контраргументы - выслушаю).
Во-вторых, я не провоцировал хамства
(есть что-то личное - мой адрес в данных).

--
Regards, LVT.


 
Hit   (2005-10-20 14:17) [41]


> [39] Игорь Шевченко ©   (20.10.05 13:33)

Поток мне нужен для подключения к БД. Когда недоступен сервер и т.п. ошибок(прога замирает на таймаут) мне нужно, что-бы главная форма появилась и туда в лог(Мемо) пошли сообщения : об ошибках, об этапах работы алгоритмов...


 
е1   (2005-10-20 14:42) [42]


> Leonid Troyanovsky ©   (20.10.05 13:44) [40]
>
> Во-первых, свою точку зрения я обосновал
> (есть контраргументы - выслушаю).
> Во-вторых, я не провоцировал хамства
> (есть что-то личное - мой адрес в данных).
>
> --
> Regards, LVT.


Еще раз.
MessageBox вызывается без хендла родительского окна - в немодальном режиме. неважгНО. в каком потоке будет создаваться экно диалога.

Где-то здесь грабли? Если здесь, то в чем?

Код, приведенный в е1, совершенно рабочий, создан для демонстрации передачи исключения наверх.

Здесь грабли?

А так как в Leonid Troyanovsky ©   (20.10.05 09:14) [34] совершенно безосновательно написано в мой адрес

> Ходящие по граблям не должны на обижаться на то,
> что я промолчал.


лишь демонстрирует, что высказывание е1   (20.10.05 13:09) [37] о трындеже  совершенно верно зарактеризует положение.

Не надо провозглашать истины без достаточных на то аргументов, даже если на фуражке голубая бляха.


 
Игорь Шевченко ©   (2005-10-20 15:22) [43]

Hit   (20.10.05 14:17) [41]


> Поток мне нужен для подключения к БД.


Насколько я понял твой пост [3], подключение ты тоже выполняешь внутри Syncronize, в этом случае, как главная форма сможет отображать ход и ошибки подключения ?

Может быть, ты приведешь более полный код, чтобы можно было подсказать некое решение ?


 
Hit   (2005-10-20 15:40) [44]


> Насколько я понял твой пост [3], подключение ты тоже выполняешь
> внутри Syncronize, в этом случае, как главная форма сможет
> отображать ход и ошибки подключения ?

у нее есть паблик функция, которой я передаю текст.
А остальные классы: датамодуль(коннект к базе), алгоритмы выдают или текст ошибки(я сам raise-ю или ексепшины) или пишу напрямую в палик функцию. Все работает в потоке через Syncronize, мож я конечно намутил. Буду рад советам.


 
Leonid Troyanovsky ©   (2005-10-20 15:59) [45]


> е1   (20.10.05 14:42) [42]

> MessageBox вызывается без хендла родительского окна - в
> немодальном режиме. неважгНО. в каком потоке будет создаваться
> экно диалога.


Исключение возбуждено, оно не обработано, т.к., не было выхода из except,
от юзера требуется реакция (показан MessageBox).
Но, первичный поток вполне может продолжать работу, т.к. модальный
диалог показан немодально.

Однако, даже если он был показан хоть трижды немодально, то это никак
не препятствует дальнейшему выполнению приложения уже в неконсистентном
состоянии (за счет необработанного исключения).

--
Regards, LVT.

ЗЫ  Свое обещание я выполнил, контраргументы выслушал, и  мой ответ
тому доказательство (хотя, это лишь рефрен).

Ну, и разрешите откланяться, достаточно уж.


 
Игорь Шевченко ©   (2005-10-20 16:12) [46]

Hit   (20.10.05 15:40) [44]


> Все работает в потоке через Syncronize, мож я конечно намутил.
>  Буду рад советам.


С этого момента желательно проиллюстрировать кодом. Хотя бы схематично, методы Execute, синхронизируемые методы.

Поток, он вообще-то нужен для параллельного выполнения чего-либо, а Synchronize, как следует из перевода, требуется для синхронного (в данном случае, с первичным потоком) выполнения кода. Поэтому мне и интересно, как выглядит тело потока(ов)


 
е1   (2005-10-20 17:15) [47]


> Leonid Troyanovsky ©   (20.10.05 15:59) [45]
>
>
> > е1   (20.10.05 14:42) [42]
>
> > MessageBox вызывается без хендла родительского окна -
> в
> > немодальном режиме. неважгНО. в каком потоке будет создаваться
>
> > экно диалога.
>
>
> Исключение возбуждено, оно не обработано, т.к., не было
> выхода из except,
> от юзера требуется реакция (показан MessageBox).
> Но, первичный поток вполне может продолжать работу, т.к.
>  модальный
> диалог показан немодально.
>
> Однако, даже если он был показан хоть трижды немодально,
>  то это никак
> не препятствует дальнейшему выполнению приложения уже в
> неконсистентном
> состоянии (за счет необработанного исключения).


Леонид, ну это же демагогия.

Автору надо было получить исключение в доп. потоке. пример иллюстрирует это.

Дальше уже дело автора, что с этим исключением делать.
Естественно, его надо обработать и погасить.
Либо не обработать и передать для обработки в основной поток.
Но это уже совсем другая история.

Кроме того, в примере это исключение как раз и обработано.
Поэтоу не вижу в примере "неконсистентного состояния" ни при каких обстоятельствах.

И аргументы просто высосаны из пальца.

Не так ли?


 
Игорь Шевченко ©   (2005-10-20 17:40) [48]

procedure TThread.Synchronize(Method: TThreadMethod);
begin
 FSynchronizeException := nil;
 FMethod := Method;
 SendMessage(ThreadWindow, CM_EXECPROC, 0, Longint(Self));
 if Assigned(FSynchronizeException) then raise FSynchronizeException;
end;



Страницы: 1 2 вся ветка

Форум: "Основная";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.058 c
2-1129572350
eagle_ua
2005-10-17 22:05
2005.11.13
Как создать объект в Delhpi?


14-1129751460
Prohodil Mimo
2005-10-19 23:51
2005.11.13
Почему так пишут компоненты?


1-1129647736
lehich
2005-10-18 19:02
2005.11.13
Find.Execute в WordDocument


11-1111460155
stals
2005-03-22 05:55
2005.11.13
Еще один халявный вопрос :)


2-1130136258
F1
2005-10-24 10:44
2005.11.13
Блокировка кнопки закрытия модального окна.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский