|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.11.2010, 22:21 | #11 |
Форумчанин
Регистрация: 13.05.2010
Сообщений: 670
|
Код:
Последний раз редактировалось bulldog5293; 28.11.2010 в 00:31. |
27.11.2010, 22:32 | #12 |
Форумчанин
Регистрация: 29.06.2008
Сообщений: 603
|
1. В выше приведенном коде не увидел ни одного Sleep'a.
2. Крайне рекомендую почитать про метод Synchronize, как он работает. 3. Также рекомендую почитать про критические секции, на мой взгляд один из лучших методов синхронизации потоков. P.S. В 4-х, не обижайтесь, но это просто жуть какая-то |
27.11.2010, 23:39 | #13 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
ТС, покажите как создаете поток, похоже ошибка там. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
27.11.2010, 23:48 | #14 |
Форумчанин
Регистрация: 13.05.2010
Сообщений: 670
|
Код:
|
28.11.2010, 00:28 | #15 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
и где вы используете ваш новый конструктор?
idHTTP у вас общий чтоли? нельзя общий! кстати зачем вы разные idhttp завели для разных запросов? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
28.11.2010, 00:31 | #16 |
Форумчанин
Регистрация: 13.05.2010
Сообщений: 670
|
idhttp у меня общий, просто когда на форуме код оставляю, меняю названия на другие и забываю все поменять , а почему idhttp общим нельзя делать? это ты про его название HTTP_BOT или HTTP_BOT.nil?
|
28.11.2010, 00:40 | #17 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
ибо если два потока будут использовать один компонент одновременно, они могут испортить его(тоже относится и переменным(особенно сложных)) вы пытались одновременно с кем то съесть яблоко? поэтому лучше в поля потока вписать idhttp и в конструкторе создавать, а в деструкторе уничтожать. а зачем названия то менять? выложили как есть и не парьтесь исправлениями названий) у вас в парсинге используются компоненты? код потока у вас именно такой? ничего не удалено важного?(можно заголовок класса потока, БЕЗ исправлений(только заголовок без кода реализаций метода)) просто я писал на эту темку программку(у меня там и потоки были и синхронизация отменная, но исходники потерял вместе с диском С) поэтому опыт есть Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
28.11.2010, 00:56 | #18 |
Форумчанин
Регистрация: 13.05.2010
Сообщений: 670
|
Парсинг cтандартный, да вроде не чего важного не удалял
|
28.11.2010, 03:27 | #19 |
Форумчанин
Регистрация: 29.06.2008
Сообщений: 603
|
И что с того?
Возьмите для примера: procedure TThread.DoAnything; var i : Integer; begin for I := 1 to 1000 do begin Sleep(1000); Form1.Caption := IntToStr(i); end; end; procedure TThread.Execute; begin while not Terminated do Synchronize(DoAnything); end; или procedure TThread.DoAnything; var i : Integer; begin for I := 1 to 1000 do begin Sleep(1000); EnterCriticalSection(CS); Form1.Caption := IntToStr(i); LeaveCriticalSection(CS); end; end; procedure TThread.Execute; begin while not Terminated do DoAnything; end; Попробуйте подвигать формой в первом случае и во втором. |
28.11.2010, 03:34 | #20 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
я вообще считаю и то и то плохим.
мое мнение что если потоки уж отделили, то не надо их спаривать через методы синхрониз и тд. Код:
грозит глюками программы. вообще пример неверен в корне. Код:
а то через синхрониз вклинили код в основной поток и в итоге там и ждете, и цикл гоняете, он не для этого предназначен. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Sleep(50); за 63 мс... или за 47... | Teksa | Общие вопросы C/C++ | 8 | 20.07.2010 08:34 |
Функция Sleep(); | VadEr | Общие вопросы Delphi | 6 | 10.09.2009 17:45 |
Проблема с Sleep! | k1r1ch | Общие вопросы Delphi | 11 | 20.06.2009 19:12 |
Функция для Sleep | russian-stalker | Общие вопросы Delphi | 5 | 12.09.2008 16:40 |
Альтернатива sleep | Zuzlan | Общие вопросы Delphi | 2 | 01.11.2007 01:44 |