|
12 / 7 / 5
Регистрация: 27.02.2015
Сообщений: 119
|
||||||
Подвисание приложения во время работы потоков11.05.2022, 13:43. Показов 1628. Ответов 13
Доброго времени. Есть код типа:
При работе всех потоков сильно падает отклик всех приложений и ОС в целом. По завершению работы t1, t2 или t3 (любого из) отклик системы возвращается. В диспетчере рядом с программой стоит метка "Эта группа процессов UWP используется для приостановки процессов в целях повышения производительности системы". В чем может быть проблема и как ее "лечить"? Спасибо. Windows 10 MSVS 2015 i3-8100 Количество ядер 4 Количество потоков 4 Базовая тактовая частота процессора 3,60 GHz Добавлено через 5 часов 15 минут При запуске потоков через afxbeginthread подобных проблем не возникает, но приложение не отрабатывает потоки, если запускать через .exe. В первом случает нагрузка процессора около 18%, во втором около 60%.
0
|
||||||
| 11.05.2022, 13:43 | |
|
Ответы с готовыми решениями:
13
Во время работы приложения, звук исчезает через некоторое время
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 11.05.2022, 13:45 | |
|
noz0o, что происходит в функциях func1, func2, func3?
1
|
|
|
12 / 7 / 5
Регистрация: 27.02.2015
Сообщений: 119
|
|
| 11.05.2022, 14:29 [ТС] | |
|
Запись в Com-port WriteFile
0
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 11.05.2022, 14:33 | |
|
noz0o, данных вы дали недостаточно. Чтобы назвать точную причину, надо смотреть код. Пока лишь можно сказать, что если ваша программа виснет, значит вы ее так написали. Никаких внешних причин, зависящих от железа или ОС в данном случае скорее всего нет.
1
|
|
|
12 / 7 / 5
Регистрация: 27.02.2015
Сообщений: 119
|
|||||||||||||||||||||
| 11.05.2022, 16:02 [ТС] | |||||||||||||||||||||
Функция на потоке:
При AfxBeginThread программа "падает" на LoadTest Код функции:
И функция непосредственно загрузки файла:
0
|
|||||||||||||||||||||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 11.05.2022, 17:53 | |
|
noz0o, из того, что вы предоставили, сейчас видно только одну серьезную проблему: прямое обращение к GUI из рабочего потока. Так делать нельзя. Нужно использовать PostMessage, чтобы поставить в очередь GUI сообщение о необходимости изменения.
1
|
|
|
2734 / 888 / 331
Регистрация: 10.02.2018
Сообщений: 2,097
|
||
| 11.05.2022, 18:35 | ||
|
Проблема же в том, что ваша программа сильно грузит процессор. Из-за этого и происходят тормоза в остальных приложениях. Нужно что-то менять в программе. Потоки запущенные через AfxBeginThread у вас не работают, так что сравнивать загрузку с ними не имеет смысла. Загрузка в 60 процентов - это не много и вроде не должно сильно тормозить, если ещё какие-нибудь программы не запущены. Возможны разные причины тормозов. У процессоров есть реальные ядра и мнимые (hyper-threading). Нормальную спецификацию на ваш процессор в инете не вижу, санкции не пускают. Если гипертрединг поддерживается и включён в биосе, то количество логических ядер в системе удваивается. При включённом гипертрединге показания нагрузки процессоров в диспетчере задач не соответствуют действительности. При видимой загрузке в 80 процентов реальной мощи уже легко может не хватать. Другой вариант, узкое место не процессор, а память. Если диспетчер задач показывает суммарную загрузку памяти близкую к имеющейся физической памяти, то могут возникать проблемы со свопом. Если начинается своп, то производительность сильно падает. При этом, наверное, диск должен активно "шуршать". Хотя, если память свопится на SSD-диски, то может быть и не слышно ничего.
1
|
||
|
12 / 7 / 5
Регистрация: 27.02.2015
Сообщений: 119
|
|
| 11.05.2022, 19:06 [ТС] | |
|
Это и является источником проблемы из сабжа?
Добавлено через 7 минут При AfxBeginThread загрузка 60%, в диспетчере 1 задача в обоих случаях
0
|
|
|
2734 / 888 / 331
Регистрация: 10.02.2018
Сообщений: 2,097
|
|||
| 11.05.2022, 19:29 | |||
Ранее вы говорили, что AfxBeginThread не работает. Потом вы говорили, что при AfxBeginThread 18%, а при std::thread 60%.
1
|
|||
|
12 / 7 / 5
Регистрация: 27.02.2015
Сообщений: 119
|
|
| 11.05.2022, 19:38 [ТС] | |
|
AfxBeginThread не работает корректно, если запускать через .exe, при компиляции в IDE все отрабатывает без зависаний и тп.
AfxBeginThread 60%, а std::thread 18%. При запуске с последним ОС теряет отзывчивость как в IDE, так и в .exe
0
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 11.05.2022, 19:41 | |
|
noz0o, временно уберите любые обращения к GUI из всех ваших рабочих потоков. Запустите программу и посмотрите что изменилось в загрузке процессора.
1
|
|
|
12 / 7 / 5
Регистрация: 27.02.2015
Сообщений: 119
|
|
| 12.05.2022, 08:35 [ТС] | |
|
Убрал любые обращения к GUI, ситуация не изменилась. std::thread::hardware_concurrency() возвращает 4.
0
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||
| 12.05.2022, 09:51 | ||
|
1) Убедиться в отсутствии гонок. Все общие ресурсы должны быть синхронизированы; 2) Убедиться в отсутствии циклов и рекурсий без передачи времени системе; 3) Убедиться, что вы точно больше нигде не работаете с GUI из рабочих потоков напрямую. И т.д. По обрывкам кода вам сложно помочь. Попробуйте запустить под профилировщиком и посмотреть в каком месте программы большая часть времени проходит. Можно будет сильно сузить радиус поиска. https://docs.microsoft.com/en-... ew=vs-2022
1
|
||
|
12 / 7 / 5
Регистрация: 27.02.2015
Сообщений: 119
|
|
| 12.05.2022, 12:53 [ТС] | |
|
Проблема решена. Оказалась неисправность графического процессора, грузился до 100%. На встроенном все работает без нареканий. Всех благодарю за помощь.
0
|
|
| 12.05.2022, 12:53 | |
|
Помогаю со студенческими работами здесь
14
Работа с потоками. На некоторых ПК один из потоков, в момент работы приложения, не просыпается Определить время работы приложения
Ошибка во время работы приложения Повышение прав приложения во время работы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
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 - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|