В XNA, какой лучший способ избавиться от текстур, которые мне больше не нужны?

Я начал проект с концепции повторного использования одних и тех же объектов texture2d в течение игры, периодически перезагружая новые текстуры. Со временем это оказалось плохой идеей, так как я работал в: System.OutOfMemoryException

    bool loadImages(string image)
    {
        System.Diagnostics.Debug.WriteLine("beginning loading textures " + image);

        try
        {
            //image_a = null;
            //image_o = null;

            //image_o.Dispose();
            //image_a.Dispose();

            image_o = Content.Load<Texture2D>("images/"+image);
            image_a = Content.Load<Texture2D>("images/" + image+"_a");


            return true;
        }
        catch 
        { 
            System.Diagnostics.Debug.WriteLine("cannot load textures " + image);         
            image_a.Dispose(); 
            image_o.Dispose(); 
        }

        return false; //make sure the caller loads the subsequent image
    }

Я догадывался, что XNA держится за прошлые текстуры с каждой новой загрузкой контента, поэтому я переписал программу, чтобы вместо этого содержать список игровых объектов, каждый из которых имеет свои собственные объекты texture2d. Проходя по списку, я избавлялся от объектов текстуры предыдущего элемента списка и загружал текстуры следующего элемента списка в его объекты текстуры. Список будет проходить только один раз в течение всей игры, просто периодически я буду переходить к следующему набору текстур, и я выберу только 2 текстуры для загрузки, поэтому теоретически в памяти всегда должны быть только 2 текстуры. , Я все еще столкнулся с ошибкой памяти. Как будто я совсем не могу полагаться на метод dispose для своевременного освобождения текстур из памяти.

Ни одна из загружаемых текстур не превышает 125 КБ, я создаю их для Windows Phone 7

Какой лучший способ отбрасывать текстуры, которые мне больше не нужны? Ссылаясь на код: нужно ли вместо этого создавать новые объекты texture2d, менять их местами и утилизировать оригиналы?

Ответы на вопрос(1)

Ваш ответ на вопрос