Once the BeginUpdate method has been called, modifying the BaseObject's settings does not result in immediate repainting. So, multiple modifications can be made to the object without a major impact on performance or screen flickering. After all the desired operations have been finished, call the EndUpdate or CancelUpdate method. Use the EndUpdate method if the object needs to be immediately repainted after the changes have been applied. If the object's visual settings haven't been affected by the operations performed and the object should not be immediately updated, call the CancelUpdate method.
The BeginUpdate, EndUpdate and CancelUpdate methods use an internal counter to implement the update functionality. The counter's initial value is 0. The BeginUpdate method increments the counter. The EndUpdate and CancelUpdate decrement the counter.
The object's visual updates (change notifications) are forbidden if the counter's value is greater than 0, and the updates are enabled if the counter's value is 0.
Each call to BeginUpdate must be paired with a call to EndUpdate or CancelUpdate. To ensure that EndUpdate/CancelUpdate is always called even if an exception occurs, use the try...finally statement.