Как встроенные средства управления WPF управляют своими обработчиками событий к приложенному событию?

Удалить строку

inputStream.useDelimiter(":");

Теперь вы можете прочитать всю строку и затем использовать split().

String riga = inputStream.nextLine(); //San Francisco: 198870.32
System.out.println(riga.split(":")[1].trim());

это должно дать вам 198870.32.

5
задан Nicolas Dorier 9 February 2009 в 13:29
поделиться

1 ответ

Используя нормальные обработчики в XAML не требует слабых ссылок.

То, что Вы делаете, создает ссылку памяти между основным управлением и дочерним элементом управления, содержавшим в рамках этого управления; дочерний элемент управления в этом случае является кнопкой.

Если кто-то поддержит ссылку на какую-либо часть визуального дерева для основного управления, то целое дерево останется в памяти, потому что это соединено (родительские/дочерние ссылки).

Теперь, если все ссылки на это дерево удалены, ссылка события между родителем и ребенком (основное управление и кнопка) не значительная, потому что эти средства управления были уже связаны через родительские/дочерние ссылки. После того как все внешние ссылки удалены, это управление может быть собрано "мусор".

Обработчики событий в XAML только создают ссылки внутреннего события.

Необходимо быть осторожными, когда внешние клиенты регистрируются к событию на управлении, потому что Вы создаете внешнюю ссылку, которая удержит контроль живой пока ссылка, и клиент существует (если это не слабая ссылка).

Ваш вопрос о приложенных событиях. Кажется, нет никакой четкой документации относительно того, вызывают ли приложенные события утечки памяти. Это смотрит на меня как управление UI, которое подписывается на событие, содержит ссылки на событие вместо наоборот, но я предполагаю, что статический объект-событие должен иметь некоторый способ уведомить управление, что это было запущено. Кажется, существует удивительное отсутствие комментария к этому от Microsoft.

7
ответ дан 14 December 2019 в 09:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: