一尘不染

EndInvoke()是可选的,排序可选的还是绝对不是可选的?

c#

关于是否每个BeginInvoke()是否必须由EndInvoke()进行匹配,我已经读到了相互矛盾的观点。与不调用EndInvoke()有关的泄漏或其他问题吗?


阅读 196

收藏
2020-05-19

共1个答案

一尘不染

Delegate.EndInvoke记录为一个 你要给这个 (即必要的-否则泄漏发生)
-从MSDN

重要的提示

无论使用哪种技术,请始终调用EndInvoke来完成异步调用。

Control.EndInvoke可以忽略即发即弃方法-来自msdn

您可以调用EndInvoke从委托中检索返回值(如果需要),但这不是必需的。

但是-
如果您正在使用Delegate.BeginInvoke并且不想要结果,请考虑使用ThreadPool.QueueUserWorkItem-它将使生活变得更加轻松,并且避免了诸如此类的痛苦IAsyncResult

2020-05-19