C # Silverlight - Когда создаются Ресурсные Словари? - PullRequest
1 голос
/ 19 июля 2011

Я работаю над проектом Silverlight 4, где я получаю утечку памяти, потому что каждый раз при загрузке некоторых представлений xaml они создают свой собственный экземпляр класса, который затем подключается к триггерам событий и не собирает мусор. Удаление слушателей события оказалось слишком сложным в данных обстоятельствах для меня, чтобы справиться с этим таким образом. Поэтому вместо этого я хочу, чтобы экземпляр класса использовался каждый раз при загрузке представления xaml.

Для этого я планировал добавить словарь ресурсов в каждый проект, в котором происходит эта ошибка. Однако меня беспокоит то, что я не знаю, когда будет создан этот словарь ресурсов. Когда решение сначала загружается, будет ли оно загружать проект, а затем словарь ресурсов, немедленно создавая класс для использования? Или он будет ждать, пока что-то не попросит об этом, а затем создаст это. Будет ли то, что на самом деле произойдет, создать копию класса, которая будет повторно использоваться всеми, кто обращается к ней (как в другой копии)?

Я также понимаю, что могу разместить ресурсы в app.xaml, но мне нужно добавить много таких классов, и это действительно загромождает область, которая не должна беспокоить эту проблему.

1 Ответ

1 голос
/ 20 июля 2011

Используйте SharedResourceDictionary Кристиана Мозера, чтобы избежать загрузки вторых копий самого словаря или всего, что в нем содержится.Это сэкономило нам большое количество времени загрузки во многих элементах управления.

...