Предположим, у меня есть простая форма в C# (winforms) с двумя текстовыми полями, одним слайдером и объектом, называемым «the_volume». Событие (OnPropertyChanged) отправляется всякий раз, когда изменяется значение «the_volume.value». Как можно CLEANLY синхронизировать четыре объекта, не вызывая бесконечного цикла?Бесконечный цикл событий
- Не отсоединяя слушателей событий
- без использования логическое значение "караул"
- Без использования Databinding
небольшой пример: изменения слайдера -> форма :: slider_changed -> the_volume установлен -> форма :: the_volume_changed -> задает значения ползунка и тексбокса -> бесконечный цикл ...
Моим первым инстинктом было бы избежать отправки события, когда значение не будет но,
1- Как я могу узнать, будут ли элементы управления .net делать то же самое? (Т.е. не вызывает, если значение равно)
2- Какие ошибки мне, что было бы «бесполезным» сеттер вызов с этим решением (набор -> изменен -> набор -> остановка петли)
afaik 'TextBox' и' Slider' не создают события изменения, если не было изменения _real_ (если значение _new_ совпадает с _old_ одним). Поэтому не должно быть бесконечного цикла. –
, но лишний вызов «сеттера» можно избежать? – d08z
не думайте, что это проблема с производительностью, поэтому не нужно ее избегать. Если вы действительно хотите этого избежать, я бы предложил «guard» boolean. –