Мне просто любопытно, действительно ли он загружает актив в память каждый раз, когда он вызывается, или если он ищет его, находит, загружен ли он, а если он не загружен, он загружает его один раз и просто сохраняет ссылки, поэтому во второй раз он вызывает его просто захватывает ссылку на него?
Как работает XNAs Content.Load‹Texture2D›?
Ответы (1)
Он отслеживает, что уже было загружено, и просто возвращает ссылку на тот же объект, если он был загружен ранее (это для каждого ContentManager). Это относится ко всему контенту, а не только к текстурам.
В результате вы можете просто вызывать Load
всякий раз, когда вам нужен Контент, не задумываясь о дублировании. Другим результатом является то, что вы никогда не должны использовать Dispose
содержимого, загруженного из ContentManager (вместо этого используйте ContentManager.Unload
).
Если вам нужны подробности, посмотрите на этот вопрос и ответьте.
person
Andrew Russell
schedule
22.11.2010
О, спасибо, это был ответ, на который я надеялся. Раньше я использовал свой собственный контент-менеджер, который работал таким же образом, поэтому я просто предположил, что это относится и к XNA. Затем я запаниковал, потому что понял, что это всего лишь предположение, и я не знал наверняка, сохраняет ли он ссылки или загружает дубликаты ресурсов.
- person meds; 22.11.2010