Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
1 / 1 / 0
Регистрация: 24.02.2014
Сообщений: 45

Отрисовка потоком в Canvas

05.07.2016, 20:53. Показов 2727. Ответов 23
Метки нет (Все метки)

Доброго времени суток. В общем ситуация такова: есть таймер, работающий с точностью в 10мс в отдельном потоке. В зависимости от времени, на канве рисуются графики и куча другого динамического интерфейса. В программе есть два режима работы: непрерывный и дискретный. Дискретный заканчивает отрисовку каждые 1570 мс, после чего пользователь должен нажать кнопку "продолжить" и работа таймера и отрисовки возобновляется. Однако, я столкнулся с рядом проблем.

В общем если рисовать на канве в отдельном потоке, то интерфейс начинает сильно глючить. Приходится ставить задержку в 10мс, но тут проявляется другая проблема, которая заключается в плохой синхронизации. Иногда программа не успевает отловить нужное значение времени в потоке, и в дискретном режиме работы отрисовка не прекращается. Есть какие-нибудь идеи или советы по решению данной проблемы? Понимаю, что работа с интерфейсом должна происходить в основном потоке, но отрисовка циклами заставляет программу зависать намертво, а использование TTimer не обеспечивает нужную точность в 10мс.

З.ы. Использую C++ Builder XE
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.07.2016, 20:53
Ответы с готовыми решениями:

Отрисовка на Canvas "гладкой" наклонной линии
Если рисовать линию методом LineTo, то линия получается некрасивая, с видимой глазу зернистостью. А как нарисовать "гладкую"...

Отрисовка линии на canvas
Только начинаю работать с wpf. Мне нужно создать usercontrol линию на canvas. Рисую линию таким образом: Line MyLine =...

WPF canvas отрисовка точки
Здравствуйте уважаемые Форумчане. Может что то не правильно понимаю, так как многого не знаю. Объясните пожалуйста как в приложении...

23
1 / 1 / 0
Регистрация: 24.02.2014
Сообщений: 45
06.07.2016, 15:59  [ТС]
d7d1c, в моём случае пользователь не может взаимодействовать с компонентом RadioGroup1 во время работы потока. Как только поток запускается, компонент становится недоступным и наоборот.
0
Модератор
 Аватар для vxg
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,468
06.07.2016, 16:03
Rex_, это вы к тому что ничего вроде бы не должно происходить и можно читать смело? да, наверное вы правы, но меня в таких случаях мучают ночные кошмары. снится что-то вроде проснувшегося сборщика мусора который уплотняет список элементов или очень быстрый пользователь который успевает кликнуть двумя мышами и по запуску потока и по компоненту. хотя вряд ли тут такое возможно.
0
1 / 1 / 0
Регистрация: 24.02.2014
Сообщений: 45
06.07.2016, 17:59  [ТС]
vxg, похоже, мне не платят столько, чтобы я об этом беспокоился
0
Модератор
 Аватар для vxg
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,468
06.07.2016, 18:07
Rex_, мне тоже. Это профессиональная деформация)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.07.2016, 18:07

Отрисовка сложных фигур на canvas
собственно вопрос, как из простых фигур, можно делать сложные? Когда я рисовал такие вот фигурки https://i.paste.pics/1PB0O.png все...

Отрисовка Планеты используя Canvas
Здравствуйте, есть такой код: function Planet (x,y, rad, n_sput, N:integer; k_orb, k_sput:real) // х, у - координаты планеты; rad -...

Отрисовка на Canvas при использовании MVVM
Проблема следующая: Есть список объектов, которые должны быть отражены в виде прямоугольников на холсте (Canvas). Места их отображения...

Canvas.TextOut отрисовка текста относительно центра
Доброго времени суток. Подскажите какое свойство Font нужно отредактировать, что бы текст отрисовывался относительно цента. По умолчанию...

Работа с timage.canvas, отрисовка нескольких картинок
Задача такая, есть белый фон, нужно отрисовать несколько картинок (всего 3), картинки примерно 10*10 пикселов, они будут заполнять канву...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2. Задача: контроль уникальности строк в. . .
Клиент
Uhbif79 18.06.2026
Здесь простой клиент для работы с сервером.
Сервер
Uhbif79 18.06.2026
Выкладываю простейший сервер.
Дефенестрация
kumehtar 18.06.2026
Узнал интересное слово. Дефенестрация. Это когда ты выбрасываешь кого-либо или что-либо из окна. Возьму на вооружение)))
Дихотомия добра и зла
kumehtar 18.06.2026
Как Дзен-буддисты говорят о добре и зле: не нужно воевать против зла, нужно воевать против невежества. Тогда добро станет ествественным, и поэтому вечным. Но дело в том, что невежество всё время. . .
Своя Интернет-Компания
iceja 18.06.2026
Я программист с экономическим образованием, пишу свой проект, это SaaS для бизнесов. Мне нужен co-founder с высшим экономическим образованием, и/ или инвестор. Сейчас проект в интенсивной разработке,. . .
24 Мат модель здравосохранения: функциональные требования к строительству пищеблока
anaschu 18.06.2026
СРесурсами1: финансовый SD-контур, калькулятор функциональных требований пищеблока Сегодня разделили затраты в агенте Экономика по образцу модели НАСОСЫ, добавили расчёт ROI и построили первый. . .
23. что сделано за последнее время.
anaschu 17.06.2026
• Эталон: Клиника НИИ питания РАМН, Москва — централизованный пищеблок, 225 коек, 180 пациентов • Git: репозиторий med2, ветка абсентеизм. Рабочий файл: СРесурсами1_v4. alp • Смежный проект:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru