一个异步问题:
我在互联网上读了很多支持和反对Delegate.EndInvoke()可选的文章。这些文章大多有4-5年的历史了。有很多死链接。
在.NET 2.0中,有没有人能解释一下-- EndInvoke()真的可以防止不可避免的内存泄漏吗?如果是,你能具体说明是什么导致了内存泄漏吗?
关于同一主题:如果EndInvoke()确实是必须的--我找到了使用运行EndInvoke()的回调方法来实现“即发即忘”机制的最佳方法。我很乐意听到任何人的不同想法。
谢谢,O
发布于 2009-10-29 19:11:45
对于Delegate.EndInvoke,您应该调用它。对于Control.EndInvoke,WinForms团队说你不需要调用它。我不知道WPF的等价物是什么,但我认为这样做是一个好主意,除非你有一个非常好的理由相信你不需要这样做。
我在我的threading article中有一些代表的“起火和忘记”代码-大约一半(搜索“起火”)。
发布于 2009-10-29 19:18:11
在msdn中:
总是调用EndInvoke来完成异步调用。
我建议你遵循指导原则,即使今天没有泄漏,明天也可能会改变。
https://stackoverflow.com/questions/1642940
复制相似问题