MFC 多线程去绘图 时间为什么总是1秒左右 在线程里面用了Sleep(50),就是每隔50毫秒刷新一次图片,可是实际运行中,刷新间隔远大于50毫秒,我先后改了Sleep后面的数值,发现,只要Sleep后面的数大于1000时刷新时间就是我设置的时间,小于1000,不管你设置的是多少,刷新时间都在1秒左右,这是怎么回事? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 UINT ThreadDraw(LPVOID param){ ImageInfo* m_image=(ImageInfo*)param; while (isStart) { CDC *pDC=m_image->pWnd->GetDC(); Graphics graph(pDC->GetSafeHdc()); srand(time(NULL)); int m_rand=rand()%m_image->m_ImagePathAry.GetCount(); CString temp=m_image->m_ImagePath+L"\\"+m_image->m_ImagePathAry[m_rand]; Image image(temp); graph.DrawImage(&image, 60, 40,330,300); m_image->pWnd->ReleaseDC(pDC); //Sleep(10); } return TRUE;} sleep很不准啊,短间隔就是个大概其。用WaitForSingleObject吧,这个比较准。 看看CPU的占用情况。有可能画图本身就用了1秒,然后再sleep 10ms,这样sleep就感觉没效果。估计会看到sleep越小(小于1000),CPU越高。 sleep WaitForSingleObject 的精确度 大概只有30ms左右。 UDP小菜 生成新窗口的问题 请推荐好的VC++培训班 怎样使我的CEdit的文本垂直居中啊? VC如何连接SQL数据库并直接执行SQL语句! 建立空文档失败? 能否从一个位图的文件头来判断其是否为灰度图? 关于双缓冲显示位图的问题,谁来帮我看下这段代码 请教个mfc的问题! Please help me , how can I create a shortcut on the desktop? ( NULL ) 求一个c++ Windows命名管道 一对多的例子 生成release下的dll问题
UINT ThreadDraw(LPVOID param)
{
ImageInfo* m_image=(ImageInfo*)param;
while (isStart)
{
CDC *pDC=m_image->pWnd->GetDC();
Graphics graph(pDC->GetSafeHdc());
srand(time(NULL));
int m_rand=rand()%m_image->m_ImagePathAry.GetCount();
CString temp=m_image->m_ImagePath+L"\\"+m_image->m_ImagePathAry[m_rand];
Image image(temp);
graph.DrawImage(&image, 60, 40,330,300);
m_image->pWnd->ReleaseDC(pDC);
//Sleep(10);
}
return TRUE;
}