|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
||||||
Поток подвешивает форму02.07.2012, 16:27. Показов 3325. Ответов 29
Метки нет (Все метки)
Господа, что-то я явно делаю не правильно, а что никак не пойму.
В основной форме, по кнопке создаю поток
Добавлено через 34 минуты И если я одновременно создам два таких потока, то они должны выполняться параллельно. В этом их и суть. А не ждать пока завершится первый.
0
|
||||||
| 02.07.2012, 16:27 | |
|
Ответы с готовыми решениями:
29
Как в С++ Builder из 2х потоков рисовать на форме квадратики(это первый поток рисует) и кружочки (2ой поток)) Запрос к БД подвешивает форму dataCridView "подвешивает" форму |
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|
| 03.07.2012, 16:58 [ТС] | |
|
Avazart, может быть действительно у меня где-то корявый алгоритм, но я вон приводил в примере, что при выполнении первого потока при движении лейбла вправо, если запустить второй поток, то второй лейбл уползет на лишние 200 пикселей далее. А если не запускать первый поток, то не уползает. Зависимость на лицо.
И это только один из примеров. Я замечал и другие странности, которые конечно очень легко объяснить просто отсутствием синхронизации, но только вот непонятно, что с этим делать.
0
|
|
|
|
||||||
| 03.07.2012, 18:45 | ||||||
|
Ну так должно быть.Непойму что не устраивает.
Каждый поток сдвигает лэбел на 200 вот тебе 200+200 Добавлено через 1 час 41 минуту Например код
Лэйбел плавно двигается по диагонали вниз-вправо.
0
|
||||||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|||||||
| 06.07.2012, 09:03 [ТС] | |||||||
|
Только у меня там два разных лейбла двигаются:
0
|
|||||||
|
|
||||||
| 06.07.2012, 20:52 | ||||||
|
Нормально работает...
0
|
||||||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|
| 10.07.2012, 13:32 [ТС] | |
|
Уважаемый Avazart... не знаю даже с чего начать. В общем из-за тех глюков, которые я у себя наблюдал, мне показалось, что наиболее правильным решением будет переписать все в один поток. Так как один поток обращается к одной же форме и делить ее ни с кем не надо. Но в результате, из-за огромного количества всевозможных проверок и действий, поток так разросся, что оптимизировать его уже не представляется возможным. Как следствие жутчайшие тормоза.
Вся разница в приведенном вами метода и тем, что пытался изобразить я, лишь в том, что в методе Execute потока у меня выполняется одна синхронизированная функция, содержащая проверки условий и прочее, а у вас сама проверка происходит непосредственно в теле метода Execute, а действия с формами в отдельных (нескольких!) функциях. Имеет ли мне смысл переписывать свою программу обратно под многопоточность (именно как вы предложили) или я получу тоже самое? Или хз?
0
|
|
|
|
|
| 10.07.2012, 15:08 | |
|
Да какая разница, сколько потоков будут эти две метки двигать? Хоть десятью можно, так-то.
![]() Чтоб много не менять, сделай так, чтобы за одну итерацию цикла потока обе метки сдвигались на единичку. Собственно, и все.
0
|
|
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
||
| 11.07.2012, 12:15 [ТС] | ||
|
Да не. Там не две метки. )) Это просто пример был. Но как выяснилось даже в нем я накосячил. И всего лишь надо было разнести по функциям действия с разными объектами (хотя я до сих пор не понимаю почему это сработало). В моей программе присутствуют такие тяжеловесные конструкции как перебор всех элементов формы, парсеры их имен и запихивание/считывание всего этого дела в структуры. Да и еще парочка потоков рядом постоянно пытаются на себя переманить ресурсы. Повыкидывал откуда смог Form->Update, - стало получше, объекты перемещаются не с такими тормозами, но зато стали самопроизвольно телепортироваться.
Вот я и думаю, мож если б переписать как я хотел изначально, но с учетом вашего варианта исполнения, то мож заработало б как планировалось.Добавлено через 39 секунд Avazart, так, ладно. А как бы вы сделали? Добавлено через 19 часов 13 минут
0
|
||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|
| 12.07.2012, 10:49 [ТС] | |
|
Спасибо, добрый человек.
0
|
|
| 12.07.2012, 10:49 | |
|
Поток фризует форму
Как правильно создать отдельный поток и из него изменять форму? Через CreateThread в поток передать указатель на форму или ее элемент Как можно поместить форму, на которой происходят определенные действия, в поток? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0»
https:/ / ibb. co/ NnkGpfMd
Представленная интегрированная схема описывает непрерывную нелинейную. . .
|
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы
### Аннотация
Представлено исследование по разработке агентной модели микоризной. . .
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|
сукцессия 9. Математика подлости: как растения предали грибных друзей
anaschu 27.06.2026
Статья 2. Глобальная фосфорная война: эволюционно-экономические механизмы распределения биомов Земли
Введение: Экологический рынок как игра с нулевой суммой
Традиционная экология долгое время. . .
|
сукцессия 8. Как я спорил с ИИ, которые - агенты растений и ненавистники грибов!
anaschu 27.06.2026
Статья 1. Хроники грибного восстания: как Сократов диалог разрушил академические догмы ИИ
Введение: Синдром «цифрового учебника»
Современные большие языковые модели (LLM) обладают колоссальным. . .
|
Главный вопрос моделирования сукцессии
anaschu 27.06.2026
главный вопрос.
Если эктомикориза лучше добывает недоступный фосфор. И ее масса максимальна из всех.
А широколиственный лес тоже имеет самую крутую биомассу.
То почему не возникло их симбиоза? Это. . .
|