Es ist ein oker Weg zu gehen, es sei denn, myObservableCollection länger leben wird als ‚this‘, wobei in diesem Fall könnten Sie mit einem Speicherverlust, als Delegierter am Ende, die hinter den Kulissen erstellt wird, wird ein konservieren Hinweis auf Ihr 'Dies', das es am Leben erhalten wird. Wenn Sie das Ereignis, das gerade zu hören ist, wiederholt erstellen und "zerstören", werden Sie feststellen, dass sie nicht vom Garbage Collector erfasst werden.
Wenn dies ein Problem ist, können Sie die in den Antworten vorgeschlagene Route verwenden und dabei einen Verweis auf den Handler beibehalten, den Sie zuerst erstellen müssen.
Eine andere Lösung besteht darin, schwache Referenzen zu verwenden, um einen Event-Handler zu erstellen, mit dem der Abonnent erfasst werden kann, wenn keine anderen Referenzen vorhanden sind. Ich habe diese Lösung in this question and answer erforscht.
? Duplizieren: http://stackoverflow.com/questions/183367/unsubscribe-anonymous-method-in-c – Richard
Siehe [this] (http://stackoverflow.com/questions/183367/unsubscribe-anonym-method -in-c). –
Ich habe meinen Lambda-Ausdruck nicht in einen Delegaten eingefügt (wie in Ihrem Link), daher habe ich keinen Hinweis auf die Abmeldung. –