2012-01-30 132 views
0

假設我有兩個事件:處理同步變量的最佳設計模式是什麼?

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是否已經是所需的值]。假設支票很貴,任何人都可以想出更好的方法來確保同步?

+0

從代碼設置文本時,驗證不會觸發。你不需要任何模式。 – 2012-01-30 22:42:33

+0

@亨克,謝謝修正它在上面的示例代碼中... – Denis 2012-01-30 22:46:43

回答

1

您可以維護一個名爲alreadyHadling的標誌,並在處理事件時相應地設置/取消設置。如果標誌被設置,則在事件處理程序的開始處執行提前退出。

相關問題