2010-11-22 2 views
2

Мне просто интересно, действительно ли он загружает актив в память каждый раз, когда он вызывается, или если он выглядит, он находит, загружен ли он, и если он не загружен, он загружает его один раз и просто сохраняет ссылки, поэтому второй раз называемый он просто захватывает ссылку на него?Как работает XNAs Content.Load <Texture2D>?

ответ

2

Он отслеживает то, что уже было загружено, и просто возвращает ссылку на тот же объект, если он был загружен раньше (это per-ContentManager). Это относится ко всему контенту, а не только к текстурам.

Результат состоит в том, что вы можете просто позвонить Load всякий раз, когда вам нужно какое-то содержание, не задумываясь о дублировании. Другим результатом является то, что вы никогда не должны Dispose контента, загруженного из ContentManager (вместо этого используйте ContentManager.Unload).

Если вы хотите более подробно, take a look at this question and answer.

+0

Ах спасибо, это был ответ, на который я надеялся. Я использовал свой собственный менеджер контента, который работал таким образом, поэтому я просто предположил, что это также относится к XNA. Тогда я впал в панику, потому что понял, что это всего лишь предположение, и я не знал точно, сохранил ли он ссылки или загрузил дубликаты активов. – tweetypi