C#定义委托和事件为什么会执行两次?

qq_14853231 2014-09-13 04:59:39
我的大概意思是指:你定义了委托之后,在委托的事件中写代码之后,没有错误,但是每当调用事件执行完一次之后不是直接跳出,而是再执行一次之后才跳出,我跟了断点,不是别的地方也调用的,就是同一处调用的
...全文
1123 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_14853231 2014-09-15
  • 打赏
  • 举报
回复
恩,好吧。我本来还以为是这个事件跟委托用的方法有什么问题呢,那想来应该是我的代码重复订阅了,谢谢各位帮忙,每个都发点吧,不要嫌少 .......
abc2363789187 2014-09-14
  • 打赏
  • 举报
回复
引用
customLabels.PropertyChanged -= customLabels_PropertyChanged; customLabels.PropertyChanged += customLabels_PropertyChanged;
是啊是啊。 如果LZ不想仔细核查代码,又需要响应一次,此方法最最好的掩盖真相的方法了。
threenewbee 2014-09-13
  • 打赏
  • 举报
回复
在事件的Add上加上一个断点看看。
  • 打赏
  • 举报
回复
引用 楼主 qq_14853231 的回复:
我的大概意思是指:你定义了委托之后,在委托的事件中写代码之后,没有错误,但是每当调用事件执行完一次之后不是直接跳出,而是再执行一次之后才跳出,我跟了断点,不是别的地方也调用的,就是同一处调用的
如果不确定是哪里出的问题,你可以浪费一点资源来保证“只调用一次”。例如写
customLabels.PropertyChanged -= customLabels_PropertyChanged;
customLabels.PropertyChanged += customLabels_PropertyChanged;
这样写。
xian_wwq 2014-09-13
  • 打赏
  • 举报
回复
订阅一次,不可能触发多次的 再仔细检查下代码
lijie_255456 2014-09-13
  • 打赏
  • 举报
回复
无代码 无真相
qq_14853231 2014-09-13
  • 打赏
  • 举报
回复
我只在一开始的时候订阅了一次,它是在执行到这个事件的方法最后一个大括号之后又跳到了这个方法的开始
Forty2 2014-09-13
  • 打赏
  • 举报
回复
估计是订阅了多次。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧