|
1 / 1 / 0
Регистрация: 24.02.2014
Сообщений: 45
|
|
Отрисовка потоком в Canvas05.07.2016, 20:53. Показов 2630. Ответов 23
Метки нет (Все метки)
Доброго времени суток. В общем ситуация такова: есть таймер, работающий с точностью в 10мс в отдельном потоке. В зависимости от времени, на канве рисуются графики и куча другого динамического интерфейса. В программе есть два режима работы: непрерывный и дискретный. Дискретный заканчивает отрисовку каждые 1570 мс, после чего пользователь должен нажать кнопку "продолжить" и работа таймера и отрисовки возобновляется. Однако, я столкнулся с рядом проблем.
В общем если рисовать на канве в отдельном потоке, то интерфейс начинает сильно глючить. Приходится ставить задержку в 10мс, но тут проявляется другая проблема, которая заключается в плохой синхронизации. Иногда программа не успевает отловить нужное значение времени в потоке, и в дискретном режиме работы отрисовка не прекращается. Есть какие-нибудь идеи или советы по решению данной проблемы? Понимаю, что работа с интерфейсом должна происходить в основном потоке, но отрисовка циклами заставляет программу зависать намертво, а использование TTimer не обеспечивает нужную точность в 10мс. З.ы. Использую C++ Builder XE
0
|
|
| 05.07.2016, 20:53 | |
|
Ответы с готовыми решениями:
23
Отрисовка на Canvas "гладкой" наклонной линии Отрисовка линии на canvas
|
|
1 / 1 / 0
Регистрация: 24.02.2014
Сообщений: 45
|
|
| 06.07.2016, 15:59 [ТС] | |
|
d7d1c, в моём случае пользователь не может взаимодействовать с компонентом RadioGroup1 во время работы потока. Как только поток запускается, компонент становится недоступным и наоборот.
0
|
|
|
Модератор
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
|
|
| 06.07.2016, 16:03 | |
|
Rex_, это вы к тому что ничего вроде бы не должно происходить и можно читать смело? да, наверное вы правы, но меня в таких случаях мучают ночные кошмары. снится что-то вроде проснувшегося сборщика мусора который уплотняет список элементов или очень быстрый пользователь который успевает кликнуть двумя мышами и по запуску потока и по компоненту. хотя вряд ли тут такое возможно.
0
|
|
|
1 / 1 / 0
Регистрация: 24.02.2014
Сообщений: 45
|
|
| 06.07.2016, 17:59 [ТС] | |
|
vxg, похоже, мне не платят столько, чтобы я об этом беспокоился
0
|
|
|
Модератор
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
|
|
| 06.07.2016, 18:07 | |
|
Rex_, мне тоже. Это профессиональная деформация)
0
|
|
| 06.07.2016, 18:07 | |
|
Помогаю со студенческими работами здесь
24
Отрисовка сложных фигур на canvas
Отрисовка на Canvas при использовании MVVM Canvas.TextOut отрисовка текста относительно центра Работа с timage.canvas, отрисовка нескольких картинок Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|