我有一个问题,我正在处理的应用程序有内存泄漏.经验告诉我,垃圾回收语言的第一个地方遇到内存泄漏之一是处理订阅事件,以后未能取消订阅.第二个与存储静态有关.我是C#的新手,对不透明事件类型感到沮丧.
我们通过抽奖获得了一些双重订阅错误,但是应用程序真的使用了一些事件.虽然我们非常了解取消订阅您订阅的所有内容的原则,但仍然存在内存泄漏.我想系统地确定什么是订阅什么.
编辑:
感谢您指向GetInvocationList()方法的指针.我正在尝试创建一个调试工具,将动态转储结果.问题是我找到的解决方案在.Net2中工作,但不再在.Net 3.5中.本质上,告诉您为EventInfo(反射,GetField和GetEvents分别)获取相应的FieldInfo.但是,在.NET 3.5中没有相应的FieldInfo,而EventInfo不会让我获得调用列表.
我只想转储事件列表和它们的InvocationList进行调试.