Schwaches Event-Handler-Modell für Lambdas

OK, das ist also eher eine Antwort als eine Frage, aber nach dem Fragendiese Frage, und die verschiedenen Bits von zusammenziehenDustin Campbell, Egor, und auch ein letzter Tipp von der 'IObservable / Rx / Reactive FrameworkIch denke, ich habe eine praktikable Lösung für dieses spezielle Problem gefunden. Es kann durch das IObservable / Rx / Reactive-Framework vollständig abgelöst werden, aber nur die Erfahrung wird dies zeigen.

Ich habe absichtlich eine neue Frage erstellt, um mir Raum zu geben, um zu erklären, wie ich zu dieser Lösung gekommen bin, da dies möglicherweise nicht sofort offensichtlich ist.

Es gibt viele verwandte Fragen, von denen die meisten sagen, dass Sie Inline-Lambdas nicht verwenden können, wenn Sie sie später trennen möchten:

Schwache Ereignisse in .Net?Unhooking-Ereignisse mit Lambdas in C #Kann die Verwendung von Lambdas als Ereignishandler zu einem Speicherverlust führen?Wie kann ich mich von einem Ereignis abmelden, das einen Lambda-Ausdruck verwendet?Anonyme Methode in C # abbestellen

Und es ist wahr, dass wennSIE Um sie später wieder abziehen zu können, müssen Sie einen Verweis auf Ihr Lambda aufbewahren. Wenn Sie jedoch nur möchten, dass sich der Ereignishandler von selbst löst, wenn Ihr Abonnent aus dem Geltungsbereich herausfällt, ist diese Antwort genau das Richtige für Sie.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage