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

ЖАНРЫ

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

'Для активизации контроля запуска событий:

' #Const EVENTINSTRUMENTATION = 1

'Для отмены контроля запуска событий:

' #Const EVENTINSTRUMENTATION = 0

'-----------------------------------------

#Const EVENTINSTRUMENTATION = 1

'-----------------------------------------------------------------------

'Флаг, указывающий обработчикам событий, должен ли из них осуществляться

'выход без выполнения каких-либо действий

'-----------------------------------------------------------------------

Private m_userInterfaceUpdateOccuring As Boolean

'Счетчики событий

Private m_radioButton1ChangeEventCount As Integer

Private m_textBox1ChangeEventCount As Integer

'-------------------------------------------------------------------------

'Код, который следует включать лишь в том случае, если приложение

'выполняется в режиме контроля запуска событий. Этот код характеризуется

'относительно высокими накладными расходами, и его следует компилировать и

'выполнять только тогда, когда выполняется диагностика.

'-------------------------------------------------------------------------

#If EVENTINSTRUMENTATION <> 0 Then

Private m_instrumentedEventLog As System.Collections.ArrayList

'----------------------------------------------------------------------

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

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

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

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

' тем больше становится размер массива

'----------------------------------------------------------------------

Private Sub instrumented_logEventOccurrence(ByVal eventData _

As String)

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

If (m_instrumentedEventLog Is Nothing) Then

m_instrumentedEventLog = _

New System.Collections.ArrayList

End If

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

m_instrumentedEventLog.Add(eventData)

End Sub

'----------------------------------------------------------

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

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

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

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

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

'----------------------------------------------------------

Private Sub instrumentation_ShowEventLog Dim listItems As _

System.Windows.Forms.ListBox.ObjectCollection

listItems = listBoxEventLog.Items

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

listItems.Clear

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

If (m instrumentedEventLog Is Nothing) Then

listItems.Add("0 событий")

Return

End If

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

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

listItems.Add(m_instrumentedEventLog.Count.ToString + _

" событий")

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

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

Dim logItem As String

Dim listIdx As Integer

For listIdx = _

m_instrumentedEventLog.Count - 1 To 0 Step -1

logItem = CStr(m_instrumentedEventLog(listIdx))

listItems.Add(logItem)

Next

End Sub

#End If

'------------------------------------------------------

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

'------------------------------------------------------

Private Sub RadioButton1_CheckedChanged(ByVal sender As _

System.Object, ByVal e As System.EventArgs) _

Handles RadioButton1.CheckedChanged

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

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

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

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

If (m userInterfaceUpdateOccuring = True) Then

Return

End If

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

m_radioButtonlChangeEventCount = _

m_radioButtonlChangeEventCount + 1

#If (EVENTINSTRUMENTATION <> 0) Then

Поделиться с друзьями: