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

Тут можно читать онлайн Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Издательский дом Вильямс, год 2006. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Программирование мобильных устройств на платформе .NET Compact Framework
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом Вильямс
  • Год:
    2006
  • Город:
    Москва • Санкт-Петербург • Киев
  • ISBN:
    5-8459-0989-9
  • Рейтинг:
    4.22/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework краткое содержание

Программирование мобильных устройств на платформе .NET Compact Framework - описание и краткое содержание, автор Иво Салмре, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Книга известного профессионала в области компьютерных технологий посвящена разработке приложений для широкого спектра мобильных устройств с использованием популярной и постоянно развивающейся платформы .NET Compact Framework. Уникальность этой книги состоит в том, что в ней гармонично переплетены теоретические сведения обо всем цикле разработки программного обеспечения с практическими примерами применения на языках С# и Visual Basic. Подробно рассматриваются концепции, лежащие в основе самой платформы .NET Compact Framework, а также вопросы, связанные с созданием эффективного пользовательского интерфейса, управлением памятью, производительностью и надежностью. Немалое внимание уделяется практическим аспектам разработки приложений для мобильных устройств, среди которых выбор модели представления и доступа к данным, внедрение коммуникационной модели, реализация модели поведения с помощью конечных автоматов и использование XML.

Книга рассчитана на разработчиков разной квалификации, а также может быть полезна для студентов и преподавателей соответствующих специальностей.

Программирование мобильных устройств на платформе .NET Compact Framework - читать онлайн бесплатно полную версию (весь текст целиком)

Программирование мобильных устройств на платформе .NET Compact Framework - читать книгу онлайн бесплатно, автор Иво Салмре
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

'Выполнять цикл до максимального значения x_counter, каждый раз

'присоединяя очередную тестовую строку к рабочей строке

Dim x_counter As Integer

For x_counter = 1 To COUNT_UNTIL

sb.Append(numberToStore)

sb.Append(", ")

'Увеличить значение счетчика

numberToStore = numberToStore + 1

Next

'Имитируем выполнение некоторых операций над строкой...

total_result = sb.ToString()

Next

PerformanceSampling StopSample(1)

'Отобразить длину строки

MsgBox("Длина строки: " + total_result.Length.ToString())

'Отобразить строку

MsgBox("String : " + total_result)

'Отобразить длительность интервала времени, ушедшего на вычисления

MsgBox(PerformanceSampling.GetSampleDurationText(1))

End Sub

Примеры к главе 9 (производительность и многопоточное выполнение)

Листинг 9.1. Код для управления выполнением одиночной задачи фоновым потоком

Option Strict On

Imports System

Public Class ThreadExecuteTask

'Перечисляем возможные состояния

Public Enum ProcessingState

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

'Начальное состояние

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

'Перечисляем возможные состояния

notYetStarted

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

'Рабочие состояния

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

'Ожидание запуска фонового потока

waitingToStartAsync

'Выполнение кода в фоновом потоке

running

'Запросить отмену выполнения вычислений

requestAbort

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

'Состояния завершения

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

'Состояние завершения: выполнение фонового потока

'успешно завершено

done

'Состояние завершения: выполнение потока отменено

'до его завершения

aborted

End Enum

Private m_processingState As ProcessingState

Public Delegate Sub ExecuteMeOnAnotherThread(_

ByVal checkForAborts As ThreadExecuteTask)

Private m_CallFunction As ExecuteMeOnAnotherThread

Private m_useForStateMachineLock As Object

Public Sub New(ByVal functionToCall As ExecuteMeOnAnotherThread)

'Создать объект, который мы можем использовать в конечном автомате

'в целях блокировки

m_useForStateMachineLock = New Object

'Обозначить готовность к началу выполнения

m_processingState = ProcessingState.notYetStarted

'Сохранить функцию, которую необходимо вызвать

'в новом потоке

m CallFunction = functionToCall

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

'Создать новый поток и вызвать в нем функцию на выполнение:

' this.ThreadStartPoint()

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

Dim threadStart As System.Threading.ThreadStart threadStart = _

New System.Threading.ThreadStart(AddressOf ThreadStartPoint)

Dim newThread As System.Threading.Thread

newThread = New System.Threading.Thread(threadStart)

'Обозначить готовность к началу выполнения (в целях определенности

'это важно сделать еще до того, как будет запущен поток!)

setProcessingState(ProcessingState.waitingToStartAsync)

'Дать ОС команду начать выполнение нового потока в асинхронном режиме

newThread.Start()

'Возвратить управление функции, вызывающей этот поток

End Sub

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

'Эта функция является точкой входа, вызываемой для

'выполнения в новом потоке

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

Private Sub ThreadStartPoint()

'Установить состояние обработки, соответствующее выполнению

'функции в новом потоке!

setProcessingState(ProcessingState.running)

'Запустить на выполнение пользовательский код и передать указатель в наш

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

'на прекращение выполнения

m_CallFunction (Me)

'Если выполнение не было отменено, изменить состояние таким образом,

'чтобы оно соответствовало успешному завершению

If (m_processingState <> ProcessingState.aborted) Then

'Обозначить завершение выполнения

setProcessingState(ProcessingState.done)

End If

'Выйти из потока...

End Sub

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

'Конечный автомат

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

Public Sub setProcessingState(ByVal nextState As _

ProcessingState)

'В любой момент времени только одному потоку выполнения могут быть

'разрешены попытки изменить состояние

SyncLock (m_useForStateMachineLock)

'В случае попытки повторного вхождения в текущее состояние

'никакие дополнительные действия не выполняются

If (m_processingState = nextState) Then

Return

End If

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

'Простейший защитный код, гарантирующий

'невозможность перехода в другое состояние, если задача либо

'успешно завершена, либо успешно отменена

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

If ((m_processingState = ProcessingState.aborted) OrElse _

(m_processingState = ProcessingState.done)) Then

Return

End If

'Убедиться в допустимости данного изменения состояния

Select Case (nextState)

Case ProcessingState.notYetStarted

Throw New Exception _

("Переход в состояние 'notYetStarted' невозможен")

Case ProcessingState.waitingToStartAsync

If (m_processingState <> ProcessingState.notYetStarted) Then

Throw New Exception("Недопустимое изменение состояния")

End If

Case ProcessingState.running

If (m_processingState <> _

ProcessingState.waitingToStartAsync) Then

Throw New Ехсерtion("Недопустимое изменение состояния")

End If

Case ProcessingState.done

'Мы можем завершить работу лишь тогда, когда она выполняется.

'Это возможно также в тех случаях, когда пользователь затребовал

'отмену выполнения, но работа к этому моменту уже была закончена

If ((m_processingState <> ProcessingState.running) AndAlso _

(m_processingState <> ProcessingState.requestAbort)) Then

Throw New Exception("Недопустимое изменение состояния")

End If

Case ProcessingState.aborted

If (m_processingState <> ProcessingState.requestAbort) Then

Throw New Exception("Недопустимое изменение состояния")

End If

End Select

'Разрешить изменение состояния

m_processingState = nextState

End SyncLock

End Sub

Public ReadOnly Property State() As ProcessingState

Get

Dim currentState As ProcessingState

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

SyncLock (m_useForStateMachineLock)

currentState = m_orocessingState

End SyncLock

Return currentState

End Get

End Property

End Class

Листинг 9.2. Тестовая программа для выполнения работы в фоновом потоке

Option Strict On

Imports System

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

'Тестовый код, который используется для выполнения фоновым

'потоком

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

Public Class Test1

Public m_loopX As Integer

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Иво Салмре читать все книги автора по порядку

Иво Салмре - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Программирование мобильных устройств на платформе .NET Compact Framework, автор: Иво Салмре. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x