Читаем Программирование мобильных устройств на платформе .NET Compact Framework полностью

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

//Заносит записи о возникновении событий в массив, который мы

//можем просмотреть

//Примечание: Не делается никаких попыток ограничить размерность массива

// регистрационных записей, поэтому, чем дольше выполняется

// приложение, тем больше становится размер массива

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

private void instrumented_logEventOccurrence(string eventData) {

 //Создать журнал событий, если он еще не был создан

 if (m_instrumentedEventLog == null) {

  m_instrumentedEventLog = new System.Collections.ArrayList;

 }

 //Зарегистрировать событие

 m_instrumentedEventLog.Add(eventData);

}


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

//Отобразить список возникших событий

//Примечание: Этот вариант реализации довольно груб.

// Целесообразнее отображать список событий

// в отдельном диалоговом окне, которое специально выводится

// для этого на экран.

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

private void instrumentation_ShowEventLog {

 System.Windows.Forms.ListBox.ObjectCollection listItems;

 listItems = listBoxEventLog.Items;


 //Очистить список элементов

 listItems.Clear;


 //При отсутствии событий - выход

 if (m_instrumentedEventLog == null) {

  listItems.Add("0 Events");

  return;

 }


 //Отобразить поверх списка общее количество

 //подсчитанных нами событий

 listItems.Add(m_instrumentedEventLog.Count.ToString + " Events");


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

 //отображались самые последние из них

 string logItem;

 for(int listIdx = m_instrumentedEventLog.Count - 1; listIdx >= 0; listIdx--) {

  logItem=(string) m_instrumentedEventLog[listIdx];

  listItems.Add(logItem);

 }

}

#endif


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

//Событие изменения состояния переключателя RadioButton1

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

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

 //Если обновление данных в пользовательском интерфейсе осуществляется

 //приложением, то мы не хотим обрабатывать его так же, как если бы

 //это событие было запущено пользователем. Если это именно так,

 //то выйти из функции без выполнения каких-либо действий.

 if (m_userInterfaceUpdateOccuring == true) {

  return;

 }


 //Подсчитать, сколько раз выполнена обработка данного события

 m_radioButtonlChangeEventCount++;


#if EVENTINSTRUMENTATION

 //Зарегистрировать наступление события

Перейти на страницу:

Похожие книги

Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

Эндрю Хант , Дэвид Томас , А. Алексашин

Программирование / Книги по IT
Разработка ядра Linux
Разработка ядра Linux

В книге детально рассмотрены основные подсистемы и функции ядер Linux серии 2.6, включая особенности построения, реализации и соответствующие программны интерфейсы. Рассмотренные вопросы включают: планирование выполнения процессов, управление временем и таймеры ядра, интерфейс системных вызовов, особенности адресации и управления памятью, страничный кэш, подсистему VFS, механизмы синхронизации, проблемы переносимости и особенности отладки. Автор книги является разработчиком основных подсистем ядра Linux. Ядро рассматривается как с теоретической, так и с прикладной точек зрения, что может привлечь читателей различными интересами и потребностями.Книга может быть рекомендована как начинающим, так и опытным разработчикам программного обеспечения, а также в качестве дополнительных учебных материалов.

Роберт Лав

Программирование, программы, базы данных / Программирование / Книги по IT