2017-07-12 3 views
0

J'ai une application qui diffuse l'image d'une caméra IP. Le problème est lorsque je ferme l'application, il est dit que 1 objet est toujours en vie (non disposé).Mise au rebut de deux objets pointés

Le code lorsque le problème se produit est:

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

le problème se produit en ligne: cameraTexture = camera.Texture; les deux variables je dépose avec succès, mais il semble encore que quelque chose les retient. Avez-vous des instructions pour me donner où dois-je chercher le problème?

Répondre

0

Ces objets implémentent-ils l'interface IDisposable?

Ensuite, vous devez les utiliser dans un bloc en utilisant:

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

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

Le motif IDisposable() est le mot-clé devriez rechercher ...