|
7 / 5 / 2
Регистрация: 25.05.2013
Сообщений: 112
|
|||||||||||||||||||||
Зависает форма при выполнении потока14.09.2018, 23:25. Показов 2301. Ответов 0
Всем привет!
Пишу на C++ Builder XE. Пишу MDI-приложение. 1. Основной поток запускает главную форму. 2. Из главной формы можно открыть несколько экземпляров MDI-формы, которая запускает выполнение двух разных потоков, которые работают одновременно с двумя разными файлами по разным алгоритмам (Пусть первый поток будет ThrConversion, а второй ThrReadCatalog). Первый конвертирует бинарный файл, а второй - парсит текстовый файл. То есть каждый экземпляр MDI-дочки запускает 2 потока, каждый из которых определяется в экземпляре MDI-дочки (то есть работает со своими адресами, как мне думается). 3. На MDI-дочках есть Label1 и Label2, которые выводят процент готовности выполнения потоков ThrConversion и ThrReadCatalog соответственно. 4. Есть запустить только 1 MDI- дочку, то все проходит хорошо, оба потока выполняются параллельно без ошибок, а на вызвавшей их MDI-дочке видно состояние работы. Но если запустить вторую MDI-дочку, которая будет делать тоже самое, но с другими файлами, то все 4 потока выполняются и выполняются правильно, но визуальная часть приложения (формы основного потока) подвисают до тех пор, пока не завершатся все потоки, потом все работает нормально Запуск потоков из MDI-дочки:
Методом научного тыка выяснилось, что проблема не в DLL. Я вообще убирал этот кусок с подключением библиотеки и использованием функции из нее. Проблема в строчке
Если ее убрать, то конвертирование происходит нормально, просто не отображается состояние на форме. Но даже если убрать из функции ProcessState() все содержимое (чтобы на форму ничего не выводилось), а Synchronize(ProcessState); оставить, то все равно подвисает. При всем при этом если не запускать ThrConversion, а только ThrReadCatalog с выводом состояния на форму, то все работает без проблем с любым количеством экземпляров этого потока (Хотя там тоже есть Synchronize ). Виснет только ThrConversion. Что тут может быть? В какую сторону гуглить ? Спасибо! Добавлено через 8 часов 21 минуту Разобрался. Нельзя так часто дергать Synchronize
0
|
|||||||||||||||||||||
| 14.09.2018, 23:25 | |
|
Ответы с готовыми решениями:
0
Зависает форма при создании потока При выполнении цикла форма подвисает Зависает форма при загрузке DLL |
| 14.09.2018, 23:25 | |
|
Помогаю со студенческими работами здесь
1
Зависает интерфейс при выполнении отдельного потока
При выполнении кода форма зависает. Как вывести прогрессбар? Зависает программа при выполнении цикла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|