异步问题:
我一直在网上阅读很多文章支持和反对Delegate.EndInvoke()是可选的。这些文章大多数是4-5岁。很多死链接。
任何人都可以在.NET 2.0中解释 - EndInvoke()确实可以防止不可避免的内存泄漏,如果是,请指出导致此泄漏的原因吗?
在同一主题上:如果EndInvoke()确实是必须的 - 我找到了使用运行EndInvoke()的回调方法实现Fire-and-forget机制的最佳方法。我很想听到其他人的意见。
谢谢, 0
答案 0 :(得分:8)
对于Delegate.EndInvoke
,您应调用它。对于Control.EndInvoke
,WinForms团队已经说过不需要调用它。我不知道WPF的等价物,但我认为这样做是个好主意,除非你有一个真的有充分的理由相信你不需要。
我在threading article中为代表提供了一些“即发即弃”代码 - 大约一半(搜索“火”)。
答案 1 :(得分:5)