![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать thread так, чтобы вып-ся в нем SQLзапр не вешал проу [D7, Win2k, WinXP]
VlGrig © (2008-04-17 16:07:00)Здравствуйте!!! Така проблема: выполняю SQL запрос в Thread-e в отдельном окне (fsStayOnTop), но пока запрос не выполнится, программа висит и это окно торчит на экране куда бы не переключался. Как можно это окно убрать при переключении на др.прогу, и вообще, почему Thread не выполняется отдельным фоновым потоком ?
VlGrig (2008-04-18 10:33:00) [1]Спасибо всем! Ссылка на статью Панова помогла. Разобрался что к чему и как надо травку курить и откуда дым пускать (и стоит ли вообще)
Ха-ха и хи-хи три раза :)))
Сергей М, (2008-04-17 19:55:00) [2]
> VlGrig (17.04.08 17:34) [19]
>
> Я понимаю что курить по рецепту
Не курил и не кури).. Не надо).. Пока)..
Ты [13] опробовал ?
Ждем-с ..
Оригинал (2008-04-17 19:10:00) [3]
> VlGrig (17.04.08 17:57) [23]
> Спасибо. добавил в Execute методе вызов процедуры родительской
> формы в которой стоит Application.ProcessMessages;
> вроде работает.
Не может работать сApplication.ProcessMessages.
Падать будет в самый неподходящий момент.
Либо в Synchronize выполнять.
Anatoly Podgoretsky (2008-04-17 18:45:00) [4]> Palladin (17.04.2008 18:11:26) [26]
В смысле Хихи, Хаха
Anatoly Podgoretsky (2008-04-17 18:43:00) [5]> Kolan (17.04.2008 17:32:18) [18]
А зачем нам повод?
ANB (2008-04-17 18:25:00) [6]
> то бишь, я, такой негодяй, дал плохой совет. автор спросил
> можно ли примерчик, я сказал можно и дал, но ANB сказал
> "не нужно"
:) Именно. Если бы автору действительно нужно было корректно работать с потоками, твой пример был бы в самую тему.
В данном же случае (как и в большинстве других) более правильное решение - отказаться от использования доп. потоков.
Palladin (2008-04-17 18:11:00) [7]
> ANB (17.04.08 18:02) [24]
то бишь, я, такой негодяй, дал плохой совет. автор спросил можно ли примерчик, я сказал можно и дал, но ANB сказал "не нужно"
может вообще, отныне, всем не нужно давать на форуме советы по использованию Synchronize, ведь подобные советы разовьют дальше дурной подход у всех...
> VlGrig (17.04.08 17:57) [23]
с чего ты так вдруг в этом уверен, что работает....
sniknik (2008-04-17 18:04:00) [8]> вроде работает.
с таким подходом это просто чудо...
ANB (2008-04-17 18:02:00) [9]
> банальное высказывание никаким боком примера использования
> synchronize не касающееся...
Зато не развивающее дальше дурной подход к асинхронному выполнению запроса.
НЕ НУЖЕН ДОПОЛНИТЕЛЬНЫЙ ПОТОК ДЛЯ ТОГО, ЧТОБЫ ПРИЛОЖЕНИЕ НЕ ВИСЕЛО ВО ВРЕМЯ ВЫПОЛНЕНИЯ ЗАПРОСА.
Соответственно не нужно работать с синхронизе и изучать работу с потоками.
VlGrig (2008-04-17 17:57:00) [10]Спасибо. добавил в Execute методе вызов процедуры родительской формы в которой стоит Application.ProcessMessages;
вроде работает.
Palladin (2008-04-17 17:42:00) [11]
> Лучше всего использовать асинхронные режимы работы используемых
> компонентов.
банальное высказывание никаким боком примера использования synchronize не касающееся...
вот еще пример построения наследника TThread
http://www.delphimaster.ru/articles/panov/
ANB (2008-04-17 17:39:00) [12]
> Palladin © (17.04.08 17:36) [20]
> Можно
> %DELPHI%\Demos\Threads\
Но не всегда нужно. Лучше всего использовать асинхронные режимы работы используемых компонентов. Если они их поддерживают.
Однако не озвучена ни СУБД ни используемая библиотека для доступа к ней.
Palladin (2008-04-17 17:36:00) [13]Можно
%DELPHI%\Demos\Threads\
VlGrig (2008-04-17 17:34:00) [14]Я понимаю что курить по рецепту, а как по рецепту,
если можно маааленький примерчик!
Kolan (2008-04-17 17:32:00) [15]> хотели на Архангельского все свалить?
Нам только дай повод :)
Сергей М. (2008-04-17 17:26:00) [16]
> sniknik © (17.04.08 17:23) [16]
Архангельский с Карихом предусмотрительно сделали ноги, перед этим, вероятно, предупредив автора топика, что бить за это будут больно и возможно ногами)
sniknik (2008-04-17 17:23:00) [17]хотели на Архангельского все свалить? а вот не вышло! ;)
Сергей М. (2008-04-17 17:23:00) [18]
> VlGrig (17.04.08 17:18) [12]
>
> как писать Synchronize
Строго наоборот - эту траву лучше не курить, а если и курить, то строго по рецепту)
Palladin (2008-04-17 17:19:00) [19]
> Сергей М. © (17.04.08 17:12) [10]
и не говори... как быки на красную тряпку :)
Сергей М. (2008-04-17 17:19:00) [20]
> К запросу подключен DBGrid, но не в этом дело
Как это не в этом ? Оч даже в этом !
Отключи запрос от DataSource и убедись в обратном...