gpt4 book ai didi

windows-phone-7 - XNA Texture2D Dispose() + ObjectDisposedException

转载 作者:行者123 更新时间:2023-12-03 23:36:44 25 4
gpt4 key购买 nike

我是 XNA 框架的新手。我正在为 Windows Phone 7 在 XNA 中编写示例应用程序。

目前我遇到了一个问题。

在示例中,我正在加载一个 Texture2D 并将其放置在下一行并将其分配给 null。我再次将相同的图像加载到相同的成员变量。但是在平局中我得到了 ObjectDisposedException。

如果我删除 dispose 调用,它不会给出任何异常。

请帮我解决这个问题。

示例:

Texture2D texture = null;
protected override void LoadContent()
{
texture = Content.Load<Texture2D>("Back");
texture .Dispose();
texture = null;

texture = Content.Load<Texture2D>("Back");
}


protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);

spriteBatch.Begin();
spriteBatch.Draw(texture , new Vector2(0, 0), Color.White);

spriteBatch.End();

base.Draw(gameTime);
}

最佳答案

您正在使用的 ContentManager 会自动管理 Assets 的生命周期。它在第一次调用后缓存“Back”纹理,并在您第二次请求时返回相同的实例。不幸的是,您已要求纹理自行处置,因此它不再处于可用状态。

您可以使用 Content.Unload 从内存中删除纹理。

关于windows-phone-7 - XNA Texture2D Dispose() + ObjectDisposedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3289607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com