Иво Салмре - Программирование мобильных устройств на платформе .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 - читать книгу онлайн бесплатно, автор Иво Салмре
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

'Обеспечивает прием файла через IrDA (инфракрасный порт)

'Этот класс НЕ является реентерабельным и не должен вызываться более

'чем одной функцией за один раз. Если необходимо иметь несколько

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

'нескольких различных экземпляров данного класса.

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

Public Class IrDAFileReceive

Private m_wasListenerStopped As Boolean

Private m_IrDAServiceName As String

Private m_fileNameForDownload As String

Private m_errorDurmgTransfer As String

Private m_irListener As System.Net.Sockets.IrDAListener

Private m ReceiveStatus As ReceiveStatus

Public ReadOnly Property ErrorText() As String

Get

Return m_errorDuringTransfer

End Get

End Property

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

'Различные состояния приема

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

Public Enum ReceiveStatus

NotDone_SettingUp

NotDone_WaitingForSender

NotDone_Receiving

Done_Success

Done_Aborted

Done_ErrorOccured

End Enum

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

' Возвращает состояние передачи

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

Public ReadOnly Property Status() As ReceiveStatus

Get

SyncLock (Me)

Return m_ReceiveStatus

End SyncLock

End Get

End Property

Private Sub setStatus(ByVal newStatus As ReceiveStatus)

'Обеспечить многопоточную безопасность для предотвращения

'параллельного выполнения операций чтения/записи

SyncLock (Me)

m_ReceiveStatus = newStatus

End SyncLock 'end lock

End Sub

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

' (in) filename: желаемое имя для входного файла IR

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

Public Sub New(ByVal filename As String, ByVal irdaServiceName As String)

'Имя сокета IrDA, который мы хотим открыть

m_IrDAServiceName = irdaServiceName

'Имя файла, в котором мы хотим сохранить полученные данные

m_fileNameForDownload = filename

End Sub

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

'Обеспечивает асинхронный прием файла через IR

' (in) filename: имя файла, в который осуществляется запись

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

Public Sub WaitForIRFileDownloadAsync()

'Заметьте, что сейчас мы находимся в режиме подготовки

setStatus(ReceiveStatus.NotDone_SettingUp)

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

'Создать новый поток

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

Dim threadEntryPoint As System.Threading.ThreadStart

threadEntryPoint = _

New System.Threading.ThreadStart(AddressOf WaitForIRFileDownload)

Dim newThread As System.Threading.Thread = _

New System.Threading.Thread(threadEntryPoint)

'Запустить поток на выполнение

newThread.Start()

End Sub

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

'Открывает порт IR и ожидает загрузки файла

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

Public Sub WaitForIRFileDownload()

Dim outputStream As System.IO.Stream

Dim irdaClient As System.Net.Sockets.IrDAClient

Dim irStreamIn As System.IO.Stream

Try

'=========================================================

'Задать и загрузить файл!

'=========================================================

internal_WaitForIRFileDownload(outputStream, irdaClient, irStreamIn)

Catch 'Поглотить любые возникающие ошибки

setStatus(ReceiveStatus.Done_ErrorOccured)

End Try

'=============================================

'Освободить все ресурсы

'=============================================

'Закрыть наш входной поток

If Not (irStreamIn Is Nothing) Then

Try

irStreamIn.Close()

Catch 'Поглотить любые возникающие ошибки

End Try

End If

'Закрытие клиента IrDA

If Not (irdaClient Is Nothing) Then

Try

irdaClient.Close()

Catch 'Поглотить любые возникающие ошибки

End Try

End If

'Закрыть файл, в который осуществлялась запись

If Not (outputStream Is Nothing) Then

Try

outputStream.Close()

Catch 'Поглотить любые возникающие ошибки

End Try

End If

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

If Not (m_irListener Is Nothing) Then

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

'был отменен, если он установлен

m_wasListenerStopped = True

Try

m_irListener.Stop()

Catch 'Поглотить любые возникающие ошибки

End Try

m_irListener = Nothing

End If

End Sub

Private Sub internal_WaitForIRFileDownload( _

ByRef outputStream As System.IO.Stream, _

ByRef irdaClient As System.Net.Sockets.IrDAClient, _

ByRef irStreamIn As System.IO.Stream)

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

'Открыть входной файл для направления в него потока данных

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

outputStream = System.IO.File.Open( _

m_fileNameForDownload, _

System.IO.FileMode.Create)

'==========================================

'ОБНОВЛЕНИЕ СОСТОЯНИЯ

'==========================================

setStatus(ReceiveStatus.NotDone_WaitingForSender)

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

'Открыть прослушивающее устройство

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

Try

m_wasListenerStopped = False

m_irListener = _

New System.Net.Sockets.IrDAListener(m_IrDAServiceName)

m_irListener.Start()

Catch eListener As System.Exception

m_errorDuringTransfer = "Error creating listener - " + _

eListener.Message

GoTo exit_sub_with_error

End Try

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

If (m_wasListenerStopped = True) Then

GoTo exit_sub_with_abort

End If

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

'Принять соединение

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

Try

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

'Выполнение будет приостановлено здесь до тех пор, пока устройство не

'начнет передавать информацию, или не будет остановлен объект

'прослушивания, выполняющийся в другом потоке)

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

irdaClient = m_irListener.AcceptIrDAClient()

Catch eClientAccept As System.Exception

'Если прослушивание остановлено другим потоком, инициировавшим отмену

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

'передано сюда.

If (m_wasListenerStopped = True) Then

GoTo exit_sub_with_abort

End If

'Если прослушивание не было прекращено,

'то произошло иное исключение. Обработать его.

m_errorDuringTransfer = "Error accepting connection - " + _

eClientAccept.Message

GoTo exit_sub_with_error

End Try

'В этом месте возможны два состояния:

'#1: Мы получили соединение от передающего устройства IR

'#2: IR-запрос был отменен (кто-то вызвал функцию STOP)

' (в этом случае приведенный ниже код сгенерирует исключение)

'Проверить, не было ли отменено выполнение

If (m_wasListenerStopped = True) Then

GoTo exit_sub_with_abort

End If

'==========================================

'ОБНОВЛЕНИЕ СОСТОЯНИЯ

'==========================================

setStatus(ReceiveStatus.NotDone_Receiving)

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

'Открыть принимающий поток

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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