Литмир - Электронная Библиотека
Содержание  
A
A

// подключены приведенные ниже функции xxx_Click.

//---------------------------------------------------------------------

//Количество элементов, которые необходимо поместить в элемент

//управления TreeView

const int NUMBER_ITEMS = 800;

//-------------------------------------------------------------------------

//Код для кнопки "Fill: Baseline"

//

//Использование неоптимизированного подхода для заполнения данными элемента

//управления TreeView

//-------------------------------------------------------------------------

private void UnOptimizedFill_Click(object sender, System.EventArgs e) {

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

 if (treeView1.Nodes.Count > 0) {

  treeView1.BeginUpdate();

  treeView1.Nodes.Clear();

  treeView1.EndUpdate();

  treeView1.Update();

 }

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

 //операцию сборки мусора

 System.GC.Collect();

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

 PerformanceSampling.StartSample(0, "TreeViewPopulate");

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

 for (int i = 0; i < NUMBER_ITEMS; i++) {

  treeView1.Nodes.Add("TreeItem" + i.ToString());

 }

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

 PerformanceSampling.StopSample(0);

 System.Windows.Forms.MessageBox.Show(PerformanceSampling.GetSampleDurationText(0));

}

//-------------------------------------------------------------------------

//Код для кнопки "Clear: Baseline"

//

//Использование неоптимизированного подхода для заполнения данными элемента

//управления TreeView

//-------------------------------------------------------------------------

private void UnOptimizedClear_Click(object sender, System.EventArgs e) {

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

 //операцию сборки мусора

 System.GC.Collect();

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

 PerformanceSampling.StartSample(1, "TreeViewClear");

 treeView1.Nodes.Clear();

 PerformanceSampling.StopSample(1);

 System.Windows.Forms.MessageBox.Show(PerformanceSampling.GetSampleDurationText(1));

}

//--------------------------------------------------

//Код для кнопки "Fill: BeginUpdate"

//

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

//--------------------------------------------------

private void UseBeginEndUpdateForFill_Click(object sender, System.EventArgs e) {

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

 if (treeViewl.Nodes.Count > 0) {

  treeView1.BeginUpdate();

  treeView1.Nodes.Clear();

  treeView1.EndUpdate();

  treeView1.Update();

 }

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

 //операцию сборки мусора

 System.GC.Collect();

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

 PerformanceSampling.StartSample(2, "Populate - Use BeginUpdate");

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

 TreeView treeView1.BeginUpdate();

 for (int i = 0; i < NUMBER_ITEMS; i++) {

  treeView1.Nodes.Add("TreeItem" + i.ToString());

 }

 treeView1.EndUpdate();

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

 PerformanceSampling.StopSample(2);

 System.Windows.Forms.MessageBox.Show(PerformanceSampling.GetSampleDurationText(2));

}

//--------------------------------------------------

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

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

//--------------------------------------------------

private void UseBeginEndUpdateForClear_Click(object sender, System.EventArgs e) {

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

 //операцию сборки мусора

 System.GC.Collect();

104
{"b":"947732","o":1}