游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1411|回复: 0

请教一个问题,HDC在多线程下会出问题吗?

[复制链接]

2

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2007-4-10 16:31:00 | 显示全部楼层 |阅读模式
我的程序最初是这样设计的:

有一个主缓存离屏表面,建立在系统内存中。(用的是ddraw7接口)
有数个工作线程,各控制一个离屏表面,也建立在系统内存中,主线程负责循环把各线程中的内容复制到主缓存表面,然后再统一输出到屏幕上。

后来发现我的程序中大多数情况是用DrawText,读取图片等操作,都是用gdi的方法弄到dc上,再获取surface的dc,拷贝过去,这样显得麻烦。

就把所有的东西改成gdi的了,把surface换成了dc。但是这样问题就来了,在线程中drawText函数出了问题,用surface获取的dc,或者改成单线程,文本都可以正常输出,但多线程中的dc就输出不了文字,并且DrawText函数返回是成功。

请问一下,HDC是不是不能在多线程下使用?surface是否完全可以在多线程下使用而没有任何隐患?

另:
1,我的线程在操作dc或者surface时是用了严谨的线程同步的。
2,线程中绘图用的dc是在主线程中建立的,用参数传给了线程。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-4-12 22:49

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表