gpt4 book ai didi

c# - Delegate.EndInvoke 究竟做了什么?有必要打电话吗?

转载 作者:太空宇宙 更新时间:2023-11-03 18:42:18 24 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Why does asynchronous delegate method require calling EndInvoke?
Is Delegate.EndInvoke() really necessary?

目前正在处理一个多线程应用程序,当引发事件而不是执行正常的 handler.Invoke(); 我正在试验 handler.BeginInvoke();。两者都工作正常。但是,对于 BeginInvoke,我对最后两个参数使用 null,因为不需要回调,而且由于没有回调,所以绝对不需要将数据传递给不存在的回调。

因此,我根本没有调用 EndInvoke。但该应用程序似乎.. 完美运行?我读到有人说可能会发生泄漏,但我只是没有注意到。

不过我很好奇,EndInvoke 到底做了什么?我真的需要进行回调只是为了调用 EndInvoke 吗?另外,为什么 EndInvoke 需要一个 IAsyncResult 参数?我可以为此权利传递 null,因为没有额外的数据传递给回调,对吗?但是,我仍然想知道,如果有额外的数据,为什么需要将其传递给 EndInvoke?它用那个参数做什么?我想知道它是如何工作的。

我检查了 .NET Reflector,但找不到 EndInvoke 的实际定义位置。在 EventHandler(我正在使用的)中,它显示的只是方法 header 。

谢谢。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com