![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| UKRtortik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 24.3.2014 Репутация: нет Всего: нет |
Все Добрый День!
Почему то обрабатывает не все ссылки, и если поставить например 20 потоков то вообще начинает пропускать половина ссылок. В чем тут может быть проблема? |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Acc - это что? Глобальная переменная? Еще к ней кто-то имеет доступ на изменение?
PS. А в чем вообще смысл метода TNewThread.Create? -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| Illusion Dolphin |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 36 Всего: 63 |
1)
Нельзя обращаться к элементам формы напрямую 2)
Не нужно использовать общие переменные в этом месте 3) Парные вещи делают через
4) Нужно форматировать код -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
||||||
|
|||||||
| PointerToNil |
|
|||
![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 17.6.2013 Репутация: 3 Всего: 6 |
UKRtortik, ну почему ты весь код сразу не показываешь? воображать и гадать приходится...
вот как у тебя критическая секция инициализируется??? (есть догадки, что неправильно) может, у тебя у каждого потока своя CS - вот было бы круто: "я в свою критическую секцию вошел, а ваши меня ниипут" |
|||
|
||||
| PointerToNil |
|
||||
![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 17.6.2013 Репутация: 3 Всего: 6 |
кстати,
можно заменить на
я бы попробовал |
||||
|
|||||
| UKRtortik |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 24.3.2014 Репутация: нет Всего: нет |
Вот полный код:
|
||||
|
|||||
| PointerToNil |
|
|||
![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 17.6.2013 Репутация: 3 Всего: 6 |
var Work:boolean должен быть локальнойпеременной в procedure TNewThread.Execute
и на всякий случай: 1) InterlockedDecrement(Thread) вместо dec(Thread) 2) Potok[Thread]:=TNewThread.Create(false); (или что там у тебя должно быть в Potok? там останется только последний из) |
|||
|
||||
| Illusion Dolphin |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 36 Всего: 63 |
Это общий ресурс, а вы в каждом потоке его используете. Это должен быть локальные объект в потоке. -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
| UKRtortik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 24.3.2014 Репутация: нет Всего: нет |
Переписал код. Соровно не коректо не много работает:
У кого еще какие предложения будут? |
|||
|
||||
| b8195108 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.7.2011 Репутация: 2 Всего: 2 |
||||
|
||||
| UKRtortik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 24.3.2014 Репутация: нет Всего: нет |
что не так?
|
|||
|
||||
| Illusion Dolphin |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 36 Всего: 63 |
1) Общие ресурсы r, html 2) Нельзя обращаться к элементам формы напрямую 3) Оформлеие кода
Ашыпка навена дета -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
||||
|
|||||
| PointerToNil |
|
|||
![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 17.6.2013 Репутация: 3 Всего: 6 |
UKRtortik, указания игнорируете и ждете других? непонятно, на что надеетесь
Work должен быть локальной переменной в Execute - непонятно написал? в других местах замените "if Work = True" на "if Acc < Proxy.Count" UKRtortik> что не так? это вы нам скажите, что у вас не так! что-то где-то "не коректо не много работает" - мы-то как можем догадаться, что именно там у вас некорректно??? P.S. зачем по SpeedButton2 ставить на паузу один поток (последний из созданных) - для меня загадка P.S.2 навставляйте во все ключевые места Execute вывод в ваше мемо строк с текстом о текущей стадии процесса со значениями ключевых переменных (ThreadId, Num, ...) - это называется debug log (чтобы не изобретать передачу параметра через synchronize и не загромождать ваше Memo лишним, можно выводить лог винапишным OutputDebugMessage и просматривать через View | Debug Windows | Event Log (или утилитку DebugView от sysinternals) или добавить в любой модуль {$APPTYPE CONSOLE} и выводить лог в окно консоли простыми WriteLn'ами Это сообщение отредактировал(а) PointerToNil - 19.5.2014, 15:20 |
|||
|
||||
| UKRtortik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 24.3.2014 Репутация: нет Всего: нет |
А как тогда останавливать поток буду? |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Через переменную потока. В твоем случае эта переменная будет типа TNewThread. -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |