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

> 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))