【发布时间】:2011-01-13 16:08:41
【问题描述】:
我有一个使用 Direct3D 来呈现视口的应用程序,它是作为独立于主应用程序的 DLL 模块制作的,它在运行时链接到它。主应用程序是一个 C# 程序。
Direct3D 设备及其资源的创建和初始化是在本地 DLL 端完成的。主 C# 程序仅从该 DLL 请求一个窗口。现在,由于主 GUI 循环位于 C# 可执行文件中,因此无论何时关闭/销毁视口,它都必须调用 DLL 函数来请求释放相关的 Direct3D 设备/资源。
问题在于,在尝试释放 Direct3D 设备时,程序会出现紧急情况。它表示与创建设备试图释放它的线程不同(我猜是主 C# 程序,因为它将消息发送到 DLL)。
有解决这个问题的方法吗?有什么想法吗?
我正在使用 Direct3D 9。
帮助表示赞赏。
【问题讨论】: