关于是否每个 BeginInvoke() 都必须与 EndInvoke() 匹配,我读过相互矛盾的意见。是否存在与不调用 EndInvoke() 相关的任何泄漏或其他问题?
Delegate.EndInvoke 被记录为你应该称之为(即必要的 - 否则会发生泄漏) - 来自msdn:
重要的提示
无论您使用哪种技术,
始终调用 EndInvoke 来完成您的
异步调用。
Control.EndInvoke 可以忽略“即发即弃”方法 - 来自msdn:
您可以调用 EndInvoke 来检索
从委托返回值,如果
必要的,但这不是必需的。
但是 - 如果您正在使用Delegate.BeginInvoke
并且不想要结果,请考虑使用ThreadPool.QueueUserWorkItem
相反 - 它会让生活变得更容易,并避免痛苦IAsyncResult
etc.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)