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

на главную - закладки

Жанры

Программирование мобильных устройств на платформе .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));

Поделиться:
Популярные книги

Его звали Тони. Книга 5

Кронос Александр
5. Щенки косуль
Фантастика:
городское фэнтези
технофэнтези
попаданцы
7.00
рейтинг книги
Его звали Тони. Книга 5

Личный аптекарь императора. Том 3

Карелин Сергей Витальевич
3. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Личный аптекарь императора. Том 3

Курс 1. Октябрь

Фокс Гарри
2. Маркатис
Фантастика:
аниме
фэнтези
сказочная фантастика
5.00
рейтинг книги
Курс 1. Октябрь

Обрыв

Гончаров Иван Александрович
Проза:
классическая проза
русская классическая проза
8.93
рейтинг книги
Обрыв

Оружейникъ

Кулаков Алексей Иванович
2. Александр Агренев
Фантастика:
альтернативная история
9.17
рейтинг книги
Оружейникъ

Вперед в прошлое 7

Ратманов Денис
7. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 7

Гранит науки. Том 3

Зот Бакалавр
3. Героями не становятся, ими умирают
Фантастика:
фэнтези
боевая фантастика
5.00
рейтинг книги
Гранит науки. Том 3

Локки 6. Потомок бога

Решетов Евгений Валерьевич
6. Локки
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Локки 6. Потомок бога

Старый, но крепкий 5

Крынов Макс
5. Культивация без насилия
Фантастика:
рпг
аниме
уся
фэнтези
5.00
рейтинг книги
Старый, но крепкий 5

Неудержимый. Книга XXX

Боярский Андрей
30. Неудержимый
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Неудержимый. Книга XXX

Чевенгур

Платонов Андрей Платонович
Проза:
советская классическая проза
6.75
рейтинг книги
Чевенгур

Камень. Книга 3

Минин Станислав
3. Камень
Фантастика:
фэнтези
боевая фантастика
8.58
рейтинг книги
Камень. Книга 3

Газлайтер. Том 21

Володин Григорий Григорьевич
21. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
5.00
рейтинг книги
Газлайтер. Том 21

Целеполагание

Владимиров Денис
4. Глэрд
Фантастика:
фэнтези
боевая фантастика
рпг
5.00
рейтинг книги
Целеполагание