gpt4 book ai didi

.net - 我如何知道 .net 事件是否已被处理?

转载 作者:行者123 更新时间:2023-12-04 01:38:57 26 4
gpt4 key购买 nike

我编写了一些代码来处理事件,如下所示:

AddHandler myObject.myEvent, AddressOf myFunction

一开始似乎一切正常,但是当我运行调试器时,我发现很多时候, myFunction每次都会运行几次 myObject.myEvent被解雇了。我发现我允许代码添加事件处理程序多次运行,从而导致这种行为。

有没有办法我可以做这样的事情?
If myObject.myEvent is not handled Then
AddHandler myObject.myEvent, AddressOf myFunction
End If

最佳答案

假设发布事件的不是你的代码,你不能。这个想法是订阅者彼此隔离 - 您无法了解其他事件订阅者,自己引发事件等。

如果问题是您多次添加自己的处理程序,您应该能够通过跟踪您是否添加了处理程序来自行解决该问题。 Steven 在添加之前删除处理程序的想法是一个有趣的解决方法:即使未订阅处理程序,尝试删除处理程序也是有效的。但是,我认为这是您的应用程序不知道它应该做什么的一种解决方法。这是一个非常快速的短期解决方案,但我担心将其保留更长时间。

关于.net - 我如何知道 .net 事件是否已被处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3477303/

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