gpt4 book ai didi

.net - VB.NET:即使没有事件处理程序也会引发事件吗?

转载 作者:行者123 更新时间:2023-12-04 00:26:05 30 4
gpt4 key购买 nike

我有一个下载、检查和保存一些大型 XML 文件的类。有时我希望 UI 告诉我发生了什么,但有时我会使用类并忽略事件。所以我在十几个地方放置了这样的代码行:

RaiseEvent Report("Sending request: " & queryString)

RaiseEvent Report("Saving file: " & fileName)

RaiseEvent Report("Finished")

我的问题是 - 如果没有任何东西在监听它们,这些事件会减慢我的代码吗?他们甚至会开火吗?

最佳答案

没有什么神奇之处,隐藏在 RaiseEvent 下的代码完全符合您的预期,它遍历一组处理程序,并执行每个处理程序。
检查是否有任何处理程序的开销是微不足道的,不用担心。

如果您的 真实 问题是“为了节省时间,我应该在引发事件之前检查事件是否有处理程序?” . . .那么答案是“不”,这样做你将一无所获。

此外,除非您需要,否则不要担心优化(请参阅此 Wikipedia entry 了解原因。)

回复:调用 GetMystring() .

是的,这与您在 C# 中引发事件的方式有关,在 C# 中,您在引发事件之前检查处理程序的存在。
例如。:

if (MyEvent != null)
MyEvent(GetMyString())

顺便说一句,不错的实验:)

关于.net - VB.NET:即使没有事件处理程序也会引发事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/250494/

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