即使
我们不需要等待结果,我们也需要在调用委托 BeginInvoke() 后调用 EndInvoke() 并关闭等待句柄吗?如果不这样做,任何资源泄漏?
是的;您始终需要调用EndInvoke()
。
否则,.Net 将永久保存结果,以防您最终调用 EndInvoke()
。
如果你想要一个"触发并忘记它"的异步调用(或者即使你不想要),你应该使用 Task
类,这要好得多。