我想實現一個消息系統,我只是使用常規的.NET事件,但問題是發佈者的壽命比訂閱者長,發佈者持有對訂閱者的引用並阻止該事件被註銷。如何實現在用戶不再被引用時取消訂閱的事件?
我在尋找微弱的事件,但有很多不同的實現它們,我無法繞過他們的大腦。我想要簡單的東西。
此外,他們中的大多數在沒有引用時不立即註銷事件。我希望有一個系統在對象沒有更多引用或超出範圍時立即取消註冊事件。
我很好,沒有使用內置的事件語法糖,而是使用公共靜態類的排序,以促進整個努力。
我只希望能夠在一個類中引發一個事件,這個事件會調用所有那些訂閱的方法,這些方法會在用戶不再使用後立即自動取消註冊。
可以這樣做或者這已經存在框架中的某種方式嗎?
請參閱[弱事件模式](http://msdn.microsoft.com/en-us/library/aa970850.aspx)(msdn)和[Weak Events in C#](http://www.codeproject.com) /文章/ 29922 /弱事件在C)(CodeProject) –
'我在圍繞他們包裹我的大腦時遇到了麻煩。'我們都去過那裏,有時你只想做東西而不必學習東西新。然而,學習這個新事物幾乎總是正確的。短期痛苦等於長期收益。 –
「防止事件未註冊」。什麼是「事件」? – Patrick