放置两个指向的物体

Disposing two objects pointed

我有一个应用程序可以流式传输网络摄像机的图像。 问题是当我关闭应用程序时它说 1 个对象仍然存在(未处理)。

出现问题时的代码为:

public override void Render(float dt)
        {
            camera.Lock();
            if (newCameraFrame)
            {
                //Texture tmp = new Texture();
                cameraTexture = camera.Texture;
                newCameraFrame = false;
            }
            base.Render(dt);
            camera.Unlock();
        }

问题发生在行:cameraTexture = camera.Texture; 我成功地处理了这两个变量,但似乎仍然有东西在控制它们。 你有什么指示可以告诉我在哪里寻找问题吗?

这些对象是否实现了 IDisposable 接口?

那么你应该在 using 块中使用它们:

using(var cameraTexture = camera.Texture())
{
   //..do all necessary things
}

//...here the object will be automatically disposed of

IDisposable() 模式是您应该查找的关键字...