Каждый раз когда я что-нибудь рисую на окне нужно вызвать Redraw для перерисовки окна. Как запустить поток обновления окна или что сделать чтобы окно перерисовывалось постоянно и имело FPS?
У вас перепутаны причина и следствие. Вы пишете "Каждый раз когда я что-нибудь рисую на окне нужно вызвать Redraw для перерисовки окна", но на самом деле все происходит ровно наоборот - рисование в окне является результатом RedrawWindow (или, что чаще, результатом InvalidateRect/InvalidateRgn).
1) Когда вам необходимо обновить часть окна, вы там ничего не рисуете, а вызываете Invalidate*, объявляя часть окна требующей обновления. То же самое может сделать и Windows. Вызывать функцию RedrawWindow обычно нет необходимости, она делает то же самое, что Invalidate*, но при этом форсирует WM_PAINT. Как правило, это лучше оставить на усмотрение системы.
2) Вы должны также написать обработчик WM_PAINT, вот он и рисует все что надо. Устанавливается clipping region (чтобы не тратить времени на отрисовку не изменившихся областей), а дальше рисуете как душе угодно - со стиранием фона, через bitblt, и т.д и т.п. Этот обработчик работает в том же потоке, что и цикл сообщений (в главном потоке то есть), и вызывает его система.
Ни создавать отдельный поток отрисовки, ни перерисовывать окно постоянно не нужно. Все уже сделано грамотно и оптимально, вряд ли вам удастся как-то ускорить рисование. Если же главный поток тратит много времени на вычисления, их и нужно вынести в рабочий поток, а главный пусть и дальше занимается отрисовкой и вообще UI.
Если нужно в маленьком окошке постоянно выводить FPS или еще что, по таймеру вызывайте InvalidateRect для этого кусочка экрана, а выводите его также в обработчике WM_PAINT.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть необходимость в написании пользовательских скриптов на Python в программе написанной на С++(QT MinGW-32bit)