Программирование мобильных устройств на платформе .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));
Поделиться:
Популярные книги
Проклятый Лекарь. Род III
3. Каратель
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Мастер Разума III
3. Мастер Разума
Фантастика:
героическая фантастика
попаданцы
аниме
5.25
рейтинг книги
Измена. Возвращение любви!
3. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Неудержимый. Книга XI
11. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сердце Дракона. Том 9
9. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.69
рейтинг книги
Война
7. Ермак
Фантастика:
боевая фантастика
альтернативная история
5.25
рейтинг книги
Под маской моего мужа
Любовные романы:
современные любовные романы
5.67
рейтинг книги
Камень. Книга 3
3. Камень
Фантастика:
фэнтези
боевая фантастика
8.58
рейтинг книги
Измена. Право на счастье
1. Чем закончится измена
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Газлайтер. Том 12
12. История Телепата
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сиротка
1. Сиротка
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Охота на эмиссара
1. Федерация Объединённых Миров
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Кодекс Охотника. Книга XV
15. Кодекс Охотника
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Сердце Дракона. Том 12
12. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.29