关于Critical Section的问题

luou 2001-09-04 11:04:41
正在做Critical Section ,开了四个线程,在一个窗口的内做不同的动作,第一个线程里面调用InitializeCriticalSection(&cs)建立一个CriticalSection,然后另外的线程依次用TryEnterCriticalSection访问一个全局变量iCriticalSectionNo;
: if(TryEnterCriticalSection(&cs))
{

Sleep(SLEEP_TIME);
hdc = GetDC (pparams->hwnd) ;
GetClientRect(pparams->hwnd,&rect);
iCriticalSectionNo ++;
wsprintf(szBuffer,TEXT("%d"),iCriticalSectionNo);
DrawText(hdc,szBuffer,-1,&rect,DT_VCENTER||DT_CENTER);
LeaveCriticalSection(&cs);
}
运行后程序占用90%的CPU,停不下来,知道最后说我虚拟内存不够为止(256M)
不知道问题出在哪里,请指教
...全文
182 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
luou 2001-09-04
  • 打赏
  • 举报
回复
因为在CriticalSection外面还有写字的代码,所以在后面Release了,用的都是一个hdc
傻乐tao 2001-09-04
  • 打赏
  • 举报
回复
用了 GetDC 有没有 ReleaseDC 啊

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧