Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2015, 18:27   #1
vipok72
Пользователь
 
Регистрация: 26.07.2015
Сообщений: 59
По умолчанию Не правильно работают потоки

Итак, есть 10 потоков, они выполняют определенную работу, иногда требуется отправить POST запрос с помощью компонента на форме (веб браузер), вроде как с потока обращаюсь к компоненту и отправляю запрос... но почему то отправляется запрос аж 10 раз, в чем дело понять не могу ибо все потоки выполняют разную работу (это точно), прошу помощи
В однопотоке - все нормально...
vipok72 вне форума Ответить с цитированием
Старый 20.08.2015, 20:10   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну надо код смотреть )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.08.2015, 21:13   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Это вы их используете неправильно, а работают они правильно.

Цитата:
с помощью компонента на форме (веб браузер), вроде как с потока обращаюсь к компоненту и отправляю запрос... но почему то отправляется запрос аж 10 раз, в чем дело понять не могу ибо все потоки выполняют разную работу
Во-первых нельзя просто так взять и обратиться к UI из другого потока без синхронизации.

Как у вас получилось 10 раз отправить один и тот же запрос сложно сказать без кода, но один веббраузер в любом случае не может выполнять 10 запросов одновременно, скорее только один самый последний запрос (ну как одна вкладка и строка адреса в обычном браузере)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 20.08.2015, 21:30   #4
vipok72
Пользователь
 
Регистрация: 26.07.2015
Сообщений: 59
По умолчанию

Это вроде как должна быть отправка POST запроса
Код:
MainFrame := Form2.Chromium1.Browser.GetMainFrame;
MainFrame.LoadRequest(Request);
Любой поток это должен выполнить это в любом случае:
Код:
Finalize(MainFrame);
Мне в голову приходит только то что это изза Finalize...
vipok72 вне форума Ответить с цитированием
Старый 20.08.2015, 22:06   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Я никогда не работал с CEF, но я сомневаюсь, что каким-то магическим образом тут может получиться что-либо лучше, чем race condition, как выше написано.

Как минимум нужно по веббраузеру на каждый поток, а не всем в 1 ломиться.
И скорее всего нужно синхронизироваться с UI потоком для любых обращений к нему.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Потоки. Закрываются все потоки при ошибке в одном. Son Общие вопросы Delphi 11 01.11.2013 09:32
Потоки, правильно реализовал или нет? bakanaev Общие вопросы Delphi 23 17.08.2012 22:26
Не работают правильно тригонометрические функции Cookson Помощь студентам 2 02.02.2010 13:21
Кнопка очистить и удалить не правильно работают Хамстер Помощь студентам 5 26.07.2009 23:31