powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Про потоки.
20 сообщений из 20, страница 1 из 1
Про потоки.
    #39528321
alvltss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, кто может подсказать ?
Изучаю мнопоточность. Вынес в отдельный поток работу с базами ACCESS через ADO. Почему то все равно наблюдается периодическая «заморозка» главной формы.
С визуальными компонентами поток напрямую не взаимодействует.
В чем может быть проблема? В ADO ? Существуют ли какие- нибудь особые требования к описанию и использованию процедур и функций, которые используют отдельные потоки ?
...
Рейтинг: 0 / 0
Про потоки.
    #39528326
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alvltss,

нет никаких особых требований. Пиши код как душе угодно, никаких заморозок не будет.
А если заморозки, то переписывай.
...
Рейтинг: 0 / 0
Про потоки.
    #39528353
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alvltssПочему то все равно наблюдается периодическая «заморозка» главной формы.
Synchronize?
...
Рейтинг: 0 / 0
Про потоки.
    #39528421
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alvltssПочему то все равно наблюдается периодическая «заморозка» главной формы

подозреваю, проблема в логике программы.
...
Рейтинг: 0 / 0
Про потоки.
    #39528717
Фотография Makar4ik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockalvltssПочему то все равно наблюдается периодическая «заморозка» главной формы

подозреваю, проблема в логике программы.а ADO через VCL?
А ничего, что VCL сама по себе - не многопоточная, а зависимая от сообщений?
там ADO КОМПОНЕНТ (ВНИМАНИЕ!!!!) лежит на форме, которая принимает сообщения от одного потока, и отрабатывает в главном потоке программы.
...
Рейтинг: 0 / 0
Про потоки.
    #39528718
Фотография Makar4ik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй написать свой компонент для ADO, который обойдёт потоки.
А лучше - свою либу для конкретной БД
...
Рейтинг: 0 / 0
Про потоки.
    #39528722
Фотография Makar4ik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...если надо изучать многопоточность, то из этой преременной надо VCL исключить.
Все модули с протоками свои - НЕ ДОЛЖНЫ юзать что-то, наследуемое от TComponent
TList, TStrings - легко (второе - не советую, ну да пофиг)
но компоненты - нет. Они завязаны на окна, а они в многопотоке нормально пахать не будут.
...
Рейтинг: 0 / 0
Про потоки.
    #39528723
Фотография Makar4ik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Makar4ik...если надо изучать многопоточность, то из этой преременной надо VCL исключить.
Все модули с протоками свои - НЕ ДОЛЖНЫ юзать что-то, наследуемое от TComponent
TList, TStrings - легко (второе - не советую, ну да пофиг)
но компоненты - нет. Они завязаны на окна, а они в многопотоке нормально пахать не будут.
Короче, дельфя управляет ОДНИМ своим потоком.
Application.ProcessMessages - это пример обращения к нему.

Мы в дельфе по умолчанию работаем в одном потоке.
Который VCL.

...как сделать иначе:
как попроще:
1. Через TThread что-то посчитать, выдать наружу через synhronize
...как получше:
2. Свой TMyThread нарисовать, не наследуя, от TThread, там считать, выдавать наружу либо через синхронизацию, либо через глобальные переменные (через critical section)
После 5-й дельфи TThread уж очень тяжёл в синхронизации, поэтому у его своего облегчённого аналога TMyThread, который тупо PostMessage фигачит, есть все бонусы по производительности.
...
Рейтинг: 0 / 0
Про потоки.
    #39528724
Фотография Makar4ik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SendMessage, не Post.
Ошибся
...
Рейтинг: 0 / 0
Про потоки.
    #39528742
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Makar4ik...если надо изучать многопоточность, то из этой преременной надо VCL исключить.
Все модули с протоками свои - НЕ ДОЛЖНЫ юзать что-то, наследуемое от TComponent
TList, TStrings - легко (второе - не советую, ну да пофиг)
но компоненты - нет. Они завязаны на окна, а они в многопотоке нормально пахать не будут.
Ой, всё...

Даже не буду спрашивать источник этого бреда.
...
Рейтинг: 0 / 0
Про потоки.
    #39528767
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Makar4ikтам ADO КОМПОНЕНТ (ВНИМАНИЕ!!!!) лежит на форме
Ты сделал такой вывод из

alvltssС визуальными компонентами поток напрямую не взаимодействует.
? Глубокомысленно...
...
Рейтинг: 0 / 0
Про потоки.
    #39528768
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanОй, всё...Не любишь из переменной VCL исключать?))
...
Рейтинг: 0 / 0
Про потоки.
    #39528769
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Makar4ikСвой TMyThread нарисовать, не наследуя, от TThread, там считать, выдавать наружу либо через синхронизацию, либо через глобальные переменные (через critical section)
После 5-й дельфи TThread уж очень тяжёл
Вот это - самая круть. Настроение с утра поднято.
...
Рейтинг: 0 / 0
Про потоки.
    #39528783
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Компьютер это конечный автомат. Треды для тех людей, которые не умеют программировать конечные автоматы." (Алан Кокс)
...
Рейтинг: 0 / 0
Про потоки.
    #39528897
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А мне вот это место больше всего нравится:
Makar4ik...
Короче, дельфя управляет ОДНИМ своим потоком.
Application.ProcessMessages - это пример обращения к нему.

Мы в дельфе по умолчанию работаем в одном потоке.
Который VCL.
...
...
...а хорошо, если бы наши супероптимизаторы начали писать многонитевые приложения.
...
Рейтинг: 0 / 0
Про потоки.
    #39528936
alvltss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Поток более - менее нормально вынесен. Во всяком случае, если в него вставить тупой бесконечный цикл, то форма не замораживается.
2. На другом компе заморозки практически не замечаются. Сильно заметно было на ноуте.
3. Заморозка почему-то сильно наблюдается при выполнении WNetAddConnection2.
...
Рейтинг: 0 / 0
Про потоки.
    #39528943
alvltss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На ноуте может тормозить заметнее, поскольку запросы идут к удаленной базе через точку доступа на телефоне через сотового оператора. Надо будет уточнить это момент.
...
Рейтинг: 0 / 0
Про потоки.
    #39528957
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alvltssНа другом компе заморозки практически не замечаются. Сильно заметно было на ноутеПонятно, ноут же холоднее - там процессор специальный. Зимний.

Пока код не покажешь, даже не смешно уже что-то обсуждать.
...
Рейтинг: 0 / 0
Про потоки.
    #39528970
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Makar4ik...если надо изучать многопоточность, то из этой преременной надо VCL исключить.
Все модули с протоками свои - НЕ ДОЛЖНЫ юзать что-то, наследуемое от TComponent
TList, TStrings - легко (второе - не советую, ну да пофиг)
но компоненты - нет. Они завязаны на окна, а они в многопотоке нормально пахать не будут.

Это почему же компоненты завязаны на окна ? Это почему же окна не будут работать в многопоточном приложении ?
...
Рейтинг: 0 / 0
Про потоки.
    #39529238
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alvltss,

здесь читал?
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Про потоки.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]