|
|
|
Про потоки.
|
|||
|---|---|---|---|
|
#18+
Господа, кто может подсказать ? Изучаю мнопоточность. Вынес в отдельный поток работу с базами ACCESS через ADO. Почему то все равно наблюдается периодическая «заморозка» главной формы. С визуальными компонентами поток напрямую не взаимодействует. В чем может быть проблема? В ADO ? Существуют ли какие- нибудь особые требования к описанию и использованию процедур и функций, которые используют отдельные потоки ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 13:36:22 |
|
||
|
Про потоки.
|
|||
|---|---|---|---|
|
#18+
alvltss, нет никаких особых требований. Пиши код как душе угодно, никаких заморозок не будет. А если заморозки, то переписывай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 13:39:33 |
|
||
|
Про потоки.
|
|||
|---|---|---|---|
|
#18+
alvltssПочему то все равно наблюдается периодическая «заморозка» главной формы. Synchronize? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 14:01:23 |
|
||
|
Про потоки.
|
|||
|---|---|---|---|
|
#18+
alvltssПочему то все равно наблюдается периодическая «заморозка» главной формы подозреваю, проблема в логике программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 15:11:15 |
|
||
|
Про потоки.
|
|||
|---|---|---|---|
|
#18+
YuRockalvltssПочему то все равно наблюдается периодическая «заморозка» главной формы подозреваю, проблема в логике программы.а ADO через VCL? А ничего, что VCL сама по себе - не многопоточная, а зависимая от сообщений? там ADO КОМПОНЕНТ (ВНИМАНИЕ!!!!) лежит на форме, которая принимает сообщения от одного потока, и отрабатывает в главном потоке программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 03:05:25 |
|
||
|
Про потоки.
|
|||
|---|---|---|---|
|
#18+
попробуй написать свой компонент для ADO, который обойдёт потоки. А лучше - свою либу для конкретной БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 03:06:45 |
|
||
|
Про потоки.
|
|||
|---|---|---|---|
|
#18+
...если надо изучать многопоточность, то из этой преременной надо VCL исключить. Все модули с протоками свои - НЕ ДОЛЖНЫ юзать что-то, наследуемое от TComponent TList, TStrings - легко (второе - не советую, ну да пофиг) но компоненты - нет. Они завязаны на окна, а они в многопотоке нормально пахать не будут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 03:32:41 |
|
||
|
Про потоки.
|
|||
|---|---|---|---|
|
#18+
Makar4ik...если надо изучать многопоточность, то из этой преременной надо VCL исключить. Все модули с протоками свои - НЕ ДОЛЖНЫ юзать что-то, наследуемое от TComponent TList, TStrings - легко (второе - не советую, ну да пофиг) но компоненты - нет. Они завязаны на окна, а они в многопотоке нормально пахать не будут. Короче, дельфя управляет ОДНИМ своим потоком. Application.ProcessMessages - это пример обращения к нему. Мы в дельфе по умолчанию работаем в одном потоке. Который VCL. ...как сделать иначе: как попроще: 1. Через TThread что-то посчитать, выдать наружу через synhronize ...как получше: 2. Свой TMyThread нарисовать, не наследуя, от TThread, там считать, выдавать наружу либо через синхронизацию, либо через глобальные переменные (через critical section) После 5-й дельфи TThread уж очень тяжёл в синхронизации, поэтому у его своего облегчённого аналога TMyThread, который тупо PostMessage фигачит, есть все бонусы по производительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 03:53:58 |
|
||
|
Про потоки.
|
|||
|---|---|---|---|
|
#18+
SendMessage, не Post. Ошибся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 03:59:19 |
|
||
|
Про потоки.
|
|||
|---|---|---|---|
|
#18+
Makar4ik...если надо изучать многопоточность, то из этой преременной надо VCL исключить. Все модули с протоками свои - НЕ ДОЛЖНЫ юзать что-то, наследуемое от TComponent TList, TStrings - легко (второе - не советую, ну да пофиг) но компоненты - нет. Они завязаны на окна, а они в многопотоке нормально пахать не будут. Ой, всё... Даже не буду спрашивать источник этого бреда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 07:39:29 |
|
||
|
Про потоки.
|
|||
|---|---|---|---|
|
#18+
Makar4ikтам ADO КОМПОНЕНТ (ВНИМАНИЕ!!!!) лежит на форме Ты сделал такой вывод из alvltssС визуальными компонентами поток напрямую не взаимодействует. ? Глубокомысленно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 11:03:48 |
|
||
|
Про потоки.
|
|||
|---|---|---|---|
|
#18+
wadmanОй, всё...Не любишь из переменной VCL исключать?)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 11:05:49 |
|
||
|
Про потоки.
|
|||
|---|---|---|---|
|
#18+
Makar4ikСвой TMyThread нарисовать, не наследуя, от TThread, там считать, выдавать наружу либо через синхронизацию, либо через глобальные переменные (через critical section) После 5-й дельфи TThread уж очень тяжёл Вот это - самая круть. Настроение с утра поднято. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 11:08:16 |
|
||
|
Про потоки.
|
|||
|---|---|---|---|
|
#18+
"Компьютер это конечный автомат. Треды для тех людей, которые не умеют программировать конечные автоматы." (Алан Кокс) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 12:21:01 |
|
||
|
Про потоки.
|
|||
|---|---|---|---|
|
#18+
А мне вот это место больше всего нравится: Makar4ik... Короче, дельфя управляет ОДНИМ своим потоком. Application.ProcessMessages - это пример обращения к нему. Мы в дельфе по умолчанию работаем в одном потоке. Который VCL. ... ... ...а хорошо, если бы наши супероптимизаторы начали писать многонитевые приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 20:43:16 |
|
||
|
Про потоки.
|
|||
|---|---|---|---|
|
#18+
1. Поток более - менее нормально вынесен. Во всяком случае, если в него вставить тупой бесконечный цикл, то форма не замораживается. 2. На другом компе заморозки практически не замечаются. Сильно заметно было на ноуте. 3. Заморозка почему-то сильно наблюдается при выполнении WNetAddConnection2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2017, 08:43:56 |
|
||
|
Про потоки.
|
|||
|---|---|---|---|
|
#18+
На ноуте может тормозить заметнее, поскольку запросы идут к удаленной базе через точку доступа на телефоне через сотового оператора. Надо будет уточнить это момент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2017, 10:09:38 |
|
||
|
Про потоки.
|
|||
|---|---|---|---|
|
#18+
alvltssНа другом компе заморозки практически не замечаются. Сильно заметно было на ноутеПонятно, ноут же холоднее - там процессор специальный. Зимний. Пока код не покажешь, даже не смешно уже что-то обсуждать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2017, 11:08:45 |
|
||
|
Про потоки.
|
|||
|---|---|---|---|
|
#18+
Makar4ik...если надо изучать многопоточность, то из этой преременной надо VCL исключить. Все модули с протоками свои - НЕ ДОЛЖНЫ юзать что-то, наследуемое от TComponent TList, TStrings - легко (второе - не советую, ну да пофиг) но компоненты - нет. Они завязаны на окна, а они в многопотоке нормально пахать не будут. Это почему же компоненты завязаны на окна ? Это почему же окна не будут работать в многопоточном приложении ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2017, 12:02:38 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39528767&tid=2041764]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
207ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 548ms |

| 0 / 0 |
