Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:
Листинг 11.1. Заполнение данными и очистка от них элементов управления TreeView с использованием альтернативных стратегий
//---------------------------------------------------------------------
//Примечание #1: В этом примере используется класс PerformanceSampling,
// определенный ранее в данной книге. Убедитесь в том, что
// вы включили этот класс в свой проект.
//Примечание #2: Этот код необходимо включить в класс Form, содержащий
// элемент управления TreeView и кнопки Button, к которым
// подключены приведенные ниже функции 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));
Поделиться:
Популярные книги
Алые перья стрел
Детские:
детские приключения
8.58
рейтинг книги
Курсант: назад в СССР
1. Курсант
Фантастика:
попаданцы
альтернативная история
7.33
рейтинг книги
Человеческое познание его сферы и границы
Научно-образовательная:
философия
6.25
рейтинг книги
Имперец. Том 1 и Том 2
1. Имперец
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXXVII
37. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Эфемер
7. Стеллар
Фантастика:
боевая фантастика
рпг
7.23
рейтинг книги
Газлайтер. Том 27
27. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Вечный. Книга I
1. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Имперец. Том 3
2. Имперец
Фантастика:
боевая фантастика
попаданцы
альтернативная история
7.43
рейтинг книги
Точка Бифуркации
1. ТБ
Фантастика:
боевая фантастика
7.33
рейтинг книги
Стеллар. Заклинатель
3. Стеллар
Фантастика:
боевая фантастика
8.40
рейтинг книги
Ты - наша
1. Наша
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга третья
3. Граф Бестужев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эмиссар
8. Ушедший Род
Фантастика:
боевая фантастика
аниме
попаданцы
7.50