我有一个使用 LayoutUpdated-events 并需要注册它们的应用程序。 这是问题,我在执行 WeakEventManager 期间遇到了问题 这就是发生的事情: 我们总是收到 null 作为发件人(根据 LayoutUpdated 的设计) null 被传递到 DeliverEven ...
我有一个使用 LayoutUpdated-events 并需要注册它们的应用程序。 这是问题,我在执行 WeakEventManager 期间遇到了问题 这就是发生的事情: 我们总是收到 null 作为发件人(根据 LayoutUpdated 的设计) null 被传递到 DeliverEven ...
如果要以通用的可靠方式使用System.Windows.WeakEventManager(组件WindowsBase),如何: 避免不必要的静态处理程序注册? 确保事件在源上存在。 由于已经考虑到使用,因此可能会有一些例外。 如何处理? WeakEventManag ...
当我做 我的OnDisplaySettingsChanged从未被调用。 但是,如果我改为通过SystemEvents.DisplaySettingsChanged += OnDisplaySettingsChanged使用常规事件订阅, SystemEvents.DisplaySet ...
我无法重现该问题(并且项目太大,无法在此处发布,而且我不确定要发布的相关部分),并且我需要这里可能出问题的想法。 我有静态事件的抽象类 然后,我通常使用WeakEventManager订阅此事件: 并且由于某些原因,调用OnTest()时不会触发弱事件处理程序。 一切(调 ...
标准事件处理程序(带有运算符+= )是内存泄漏的原因之一(如果它没有被取消注册/处置(带有-=运算符))。 微软通过WeakEventManager及其继承解决了这个问题: PropertyChangedEventManager, CollectionChangedEventManager, Cu ...
我正在尝试使用Reactive库在PCL中实现WeakEventManager。 所以重点是它为订阅者保留了一个弱引用,并且每次事件触发时 - 它获取订阅者的委托并触发它,但是如果他无法从弱引用中获取对象,那么它将链接部署到代表。 问题是在很短的时间之后,弱引用返回null(但订阅者 ...
当我无法确定性地退订时,我正在使用弱事件(否则,我希望+=和-=代替弱事件): 这样,如果对象被垃圾回收,那么事件处理程序将不会被调用。 完善。 然而。 如果还没有垃圾回收对象(但是没有更多的强引用),则将继续调用事件处理程序。 我的问题很笼统:使用弱事件时该怎么办? ...
我有一个自定义的INotifyCollectionChanged类,该类实际上只是包装了标准的ObservableCollection 。 每当添加/删除某些内容时,都会按预期引发CollectionChanged事件。 但是,当我尝试使用WeakEventListener侦听此事件时,侦听 ...
我有一个静态类,因为我不喜欢传递一个巨大的设置文件的想法,但是我希望能够让实例订阅静态类上的静态事件。 我一直在研究使用PropertyChangedEventManager的AddListener方法,但需要添加一个实例。 这有可能吗? 我在.net 4.0上,以防万一。 ...
我不喜欢不合标准的模式,但我正在对我的应用程序进行快速测试,并且我遇到了这种奇怪的行为。 考虑一个暴露事件的普通类,这里是非常常见的PropertyChanged,但我认为可能是其他任何一个。 订户选择通过WeakEventManager帮助程序订阅事件。 现在,“奇怪”的东西是实 ...
我将附加到第3个长期活动的Deleted事件发布者方,由于事件处理程序,该发布者最终使我可能短暂存在的对象保持活动状态。 Deleted事件很可能永远不会触发,如果发生,我只需要处理就可以了。 取消订阅Deleted事件的位置并不明显,因此我希望对其进行弱引用,以便可以对我的对象进行GC。 ...
我一直在寻找使用弱事件模式订阅事件。 使用.NET 4.5框架,我们有一个漂亮的WeakEventManager类。 弱订阅活动很简单 然而,我并不是'串式'代码的忠实粉丝。 我一直试图找到一种方法来使用事件的字符串名称来订阅。 我发现获取事件名称的唯一方法是在定义事件的类中使用 ...
我理解弱参考和弱事件模式。 使用弱事件模式的一个地方是Controls和DataModel之间的DataBinding。 在DataBinding的过程中,如果DataModel支持INotifyPropertyChange,Control将要求DataModel通过事件通知他。 如果 ...
我目前正在学习WPF,并且偶然发现了弱事件的概念,但我真的很想“得到它”。 我已经在Stackoverflow上阅读了无数文章并查看了代码示例,但它并没有陷入其中。 这是我的困境: 我理解,当一个对象订阅一个事件时,事件的来源必须保持对订阅者的引用。 我也理解,如果订阅 ...
我正在尝试将Michael Dudley的示例代码改编为自己的弱事件管理器实现: 使用.NET的WeakEventManager实现弱事件的示例实现 我想知道如何将我的用户代码放在我自己的处理程序中? 我看到这个: 我会用自己的自定义代码替换该表达式的内容吗? 谢谢, ...
我正在为Silverlight很好地实现弱事件模式以避免内存泄漏。 似乎有一些实现,但代码不是微不足道的,很难知道哪一个是正确的。 我找不到微软的任何官方推荐。 如果可能的话,我会使用简单的语法。 干杯。 ...
我今天在以下场景中思考: 我有两个A和B班。 A公开事件E. B使用弱事件处理程序“W”订阅此事件“E”。 过了一会儿,没有人提到任何B,但GC还没有开始。 虽然GC尚未收集B且A引发“E”,但弱事件处理程序是否会被调用? 我想是的,但如果我没有遗漏某些东西, ...
我正在阅读“The C# 语言”,第 4 版,它谈到了WeakReference和Weak Event Pattern : CHRISTIAN NAGEL:Memory 泄漏通常是由于事件使用不当造成的。 如果客户端对象附加到事件但不与它们分离,并且不再使用对客户端 object 的引用,则垃圾 ...
当我在WPF中使用数据绑定时,我的目标控件正在侦听绑定源上的事件。 例如,我可能有一个ListView监听ObservableCollection上的CollectionChanged事件。 如果事件源的生命周期预计超过事件侦听器的生命周期,则可能存在内存泄漏,应使用弱事件模式 。 ...
是否有使用.NET的WeakEventManager的弱事件的示例实现? 我正在尝试通过遵循文档中的“Notes to Inheritors”来实现它,但它很模糊。 例如,我无法弄清楚如何从我的自定义管理器中的静态AddListener函数调用ProtectedAddListener 。 ...