#c# #weak-events
#c# #слабые события
Вопрос:
Сегодня я думаю о следующем сценарии:
У меня есть два класса A и B.
A предоставляет событие E.
B подписывается на это событие «E», используя слабый обработчик событий «W».
Через некоторое время никто не хранит никаких ссылок на B, но GC еще не запущен.
Пока B еще не собран GC, а A вызывает «E», будет ли вызываться обработчик слабых событий?
Я думаю, да, но мне любопытно, если я чего-то не упускаю.
Ответ №1:
Да, так и будет. WeakEventManager увидит, что объект, на который ссылается B, «живой» (еще не собран) и вызовет там событие.