关于OnTimer的延时有关问题

关于OnTimer的延时问题
OnTimer好象不是很精确,程序忙的时候会有很明显的延时。
我试图加一个线程来解决问题。但好象不行。。OnTimer好象也是依赖主线程的。。
怎么在辅助线程中创建和处理定时器啊
我的目的是连续画10张图片形成动画


------解决方案--------------------
如果想定时准确些,可以将子线程优先级提高点。
------解决方案--------------------
辅助线程必须是UI线程,因为ontimer是窗口的相应函数
你可以在主线程中使用定时器,把主线程中比较占用时间的工作放到一个工作线程
------解决方案--------------------
给你一个函数,可以不阻塞线程,响应界面
void Delay(DWORD dwMilliseconds)
{
DWORD dwStart=0,dwStop=0; //起始值和终止值
dwStart=dwStop=GetTickCount();
MSG msg;
do
{
dwStop=GetTickCount();
if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
while(dwStop-dwMilliseconds <dwStart);
}

------解决方案--------------------
你Timer定的多少时间?
Timer的精度有一个下限的
------解决方案--------------------
不是UI线程也行。手工实现一个消息泵就是了。 
消息泵的实现参考legendhui(秋天的叶子)给出的代码。
------解决方案--------------------
在消息循环中,如果没有消息就处于空闲状态,可以利用这时来绘制图片。具体看看CWinApp::OnIdle()。在绘制的时候,首先记录起始时间(第一次绘图时间,可以用成员变量或者静态变量),然后每次进入先取得时间来比较,到了需要更新的时间再绘制,可以提高效率。

这也是绝大多数游戏采用的刷新方式。