关于事件在意料之外触发的问题

问题:

  做了一个自定义调整的界面,使用的是silverlight,由于其中控件的事件触发时机是混在一起的(通过页面和代码修改值触发的事件是同一个),导致事件循环触发,程序卡死。

解决方法:

  1.不用silverlight

  2.使用“锁”的机制:代码修改可能触发事件的值时,将事件锁上

(其实就是写个变量,比如Bool类型的,默认设为false,在代码中修改相关的值之前设为true,在事件开始判断一下,被锁上了就return,结束方法,没锁上就继续走,修改值之后记得将锁放开。)

  3.递归时注意锁的位置,慎用。

原文地址:https://www.cnblogs.com/wzs2016/p/6212645.html