public override void BeginUpdate () { Interlocked.Increment (ref lock_count); if (lock_count > 1) return; surface.Flush (); }