Здравствуйте, Streamer1, Вы писали:
S>Здравствуйте, Andrbig, Вы писали:
A>>При таком раскладе не надо никому ничего сообщать. Заведи таймер, срабатывающий так часто, как тебе надо. Таймер возьмет последние данные от рабочего потока и их отрисует. Все, не надо никаких усложнений.
S>ха
S>я так и делал вначале, поставил таймер на 20 мс и по нему делал Invalidate, но
S>по какимто причинам таймер срабатывает не раз в 20 мс, а как ему вздумается -
S>то раз в 3 секунды, то раз в секунду, короче обновление получается в среднем
S>раз в несколько секунд. В чем дело не знаю... поэтому стал делать Invalidate из
S>потока отрисовки, но это стало заметно тормозить поток отрисовки, а его тормозить нельзя
ха
Сравни то что ты делал с тем что я предложил. Ты каждые 20мс бросал invalidate, а отрисовка видимо шла дольше 20 мс — в результате очередь сообщений забивалась этими Invalidate-ми под завязку. А поскольку таймер — в той же очереди, то неудивительно, что он стал работать с перерывами. Ты сам его и затормозил.
Я же предлагаю делать Paint в таймере, а в OnPaint контрола ничего не делать — все равно таймер работает часто.
Хотя сам бы я делал по другому: я в конце OnPaint запускал бы серверный таймер на 20 мс, который бы бросил Invalidate.