Чтение онлайн

ЖАНРЫ

Программирование мобильных устройств на платформе .NET Compact Framework

Салмре Иво

Шрифт:

'Подход, в котором используется метод BeginUpdate

'--------------------------------------------------

Private Sub UseBeginEndUpdateForFill_Click(ByVal sender As _

 System.Object, ByVal e As System.EventArgs) _

 Handles UseBeginEndUpdateForFill.Click

 'Очистить массив для создания одинаковых условий тестирования

 If (TreeView1.Nodes.Count > 0) Then

TreeView1.BeginUpdate

TreeView1.Nodes.Clear

TreeView1.EndUpdate

TreeView1.Update

 End If

 'Для
повышения корректности тестирования предварительно выполнить

 'операцию сборки мусора. В РЕАЛЬНЫХ КОДАХ ЭТОГО ДЕЛАТЬ НЕ СЛЕДУЕТ!

 System.GC.Collect

 'Запустить таймер

 PerformanceSampling.StartSample(2, _

"Populate - Use BeginUpdate")

 'Заполнить данными элемент управления TreeView

 TreeView1.BeginUpdate

 Dim i As Integer

 For i = 1 To NUMBER_ITEMS

TreeView1.Nodes.Add("TreeItem" + i.ToString)

 Next

 TreeView1.EndUpdate

 'Остановить таймер и отобразить результат

 PerformanceSampling.StopSample(2)

 MsgBox(PerformanceSampling.GetSampleDurationText(2))

End Sub

'--------------------------------------------------

'Код для кнопки "Clear: BeginUpdate"

'Подход, в котором используется метод BeginUpdate

'--------------------------------------------------

Private Sub UseBeginEndUpdateForClear_Click(ByVal sender As _

 System.Object, ByVal e As System.EventArgs) _

 Handles UseBeginEndUpdateForClear.Click

 'Для повышения корректности тестирования предварительно выполнить

 'операцию сборки мусора. В РЕАЛЬНЫХ КОДАХ ЭТОГО ДЕЛАТЬ НЕ СЛЕДУЕТ!

 System.GC.Collect

 'Запустить таймер

 PerformanceSampling.StartSample(3, "Clear - Use BeginUpdate")

 TreeView1.BeginUpdate

 TreeView1.Nodes.Clear

 TreeView1.EndUpdate

 'Остановить таймер и отобразить результат

 PerformanceSampling.StopSample(3)

 MsgBox(PerformanceSampling.GetSampleDurationText(3))

End Sub

'-------------------------------------

'Код для кнопки "Fill: Use Array"

'Подход, в котором используется массив

'-------------------------------------

Private Sub FillArrayBeforeAttachingToTree_Click(ByVal _

 sender As System.Object, ByVal e As System.EventArgs) _

 Handles FillArrayBeforeAttachingToTree.Click

 'Очистить
массив для создания одинаковых условий тестирования

 If (TreeView1.Nodes.Count > 0) Then

TreeView1.BeginUpdate

TreeView1.Nodes.Clear

TreeView1.EndUpdate

TreeView1.Update

 End If

 'Для повышения корректности тестирования предварительно выполнить

 'операцию сборки мусора. В РЕАЛЬНЫХ КОДАХ ЭТОГО ДЕЛАТЬ НЕ СЛЕДУЕТ!

 System.GC.Collect

 'Запустить таймер

 PerformanceSampling.StartSample(4, "Populate - Use Array")

 'Распределить память для нашего массива узлов дерева

 Dim newTreeNodes As System.Windows.Forms.TreeNode

 ReDim newTreeNodes(NUMBER_ITEMS - 1)

 'Заполнить массив

 Dim i As Integer

 For i = 0 To NUMBER_ITEMS - 1

newTreeNodes(i) = _

New System.Windows.Forms.TreeNode("TreeItem" + _

i.ToString)

 Next

 'Связать массив с элементом управления TreeView

 TreeView1.BeginUpdate

 TreeView1.Nodes.AddRange(newTreeNodes)

 TreeView1.EndUpdate

 'Остановить таймер и отобразить результат

 PerformanceSampling.StopSample(4)

 MsgBox(PerformanceSampling.GetSampleDurationText(4))

End Sub

Листинг 11.2. Динамическое заполнение данными элемента управления TreeView

'Фиктивный текст для размещения в заполнителях дочерних узлов

Const dummy_node As String = "_dummynode"

'Метка, которую мы будем использовать для обозначения узла

Const node_needToBePopulated As String = "_populateMe"

'Текст, который мы будем использовать для наших узлов высшего уровня

Const nodeText_Neighborhoods As String = "Neighborhoods"

Const nodeText_Prices As String = "Prices"

Const nodeText_HouseType As String = "HouseTypes"

'--------------------------------------------------------------------

'Обработчик события щелчка для кнопки

'Настраивает наш элемент управления TreeView для отображения процесса

Поделиться с друзьями: