首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Direct3D 9创建和释放线程?

Direct3D 9创建和释放线程?
EN

Stack Overflow用户
提问于 2011-01-14 00:08:42
回答 1查看 518关注 0票数 1

我有一个使用Direct3D渲染视口的应用程序,它是作为独立于主应用程序的DLL模块在运行时链接到它的。主应用程序是一个C#程序。

Direct3D设备及其资源的创建和初始化是在本地DLL端完成的。主C#程序只从这个动态链接库请求一个窗口。现在,由于主图形用户界面循环在C#可执行文件中,因此每当关闭/销毁视区时,它都必须调用DLL函数来请求释放相关的Direct3D设备/资源。

问题是,在尝试释放Direct3D设备时,程序会死机。它表明另一个线程(我猜是主C#程序,因为它正在向DLL发送消息)与创建试图释放它的设备的线程不同。

有没有解决这个问题的办法?有什么想法吗?

我使用的是Direct3D 9。

感谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2011-01-14 00:19:20

所有D3D设备调用都与创建它们的线程具有线程亲和性。

您必须将调用编组回主D3D线程,或者使用D3DCREATE_MULTITHREADED初始化设备,以便允许从多个线程使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4682219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档