处理同步变量的最佳设计模式是什么?

时间:2012-01-30 22:30:31

标签: c# .net vb.net

假设我有两个事件:

Public Sub Control1Updated() Handles control1.TextChanged
    control2.Text = SomeFunction(control1.Text)
End Sub

Public Sub Control2Updated() Handles control2.TextChanged
    control1.Text = SomeFunction(control2.Text)
End Sub

基本上{control1.Text,control2.Text}和{control2.Text,control1.Text}的对应该是相同的。如果将control1.Text更改为让我们说“a”,那么control2.Text总是“b”。如果control2.Text更改为“b”,则control1.Text始终为“a”。如何在不进入无限循环的情况下实现事件? [我能想到的最好的是检查另一个control.Text是否已经是所需的值]。假设检查费用昂贵,有人能想出更好的方法来确保同步吗?

1 个答案:

答案 0 :(得分:1)

您可以维护一个名为alreadyHadling的标志,并在处理事件时相应地设置/取消设置。在事件处理程序的开头,如果设置了标志,则执行提前退出。