Библиотека knigago >> Компьютеры: Операционные системы >> Android >> Программирование мобильных устройств на платформе .NET Compact Framework

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

Программирование мобильных устройств на платформе .NET Compact Framework
Книга - Программирование мобильных устройств на платформе .NET Compact Framework.  Иво Салмре  - прочитать полностью в библиотеке КнигаГо
Название:
Программирование мобильных устройств на платформе .NET Compact Framework
Иво Салмре

Жанр:

Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Android, Прочие ОС, Программирование: прочее, .NET Framework

Изадано в серии:

неизвестно

Издательство:

Вильямс

Год издания:

ISBN:

5-8459-0989-9

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

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

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

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

Читаем онлайн "Программирование мобильных устройств на платформе .NET Compact Framework". [Страница - 383]

поручить

 'получение файла фоновому потоку

 'irdaFileReceive.WaitForIRFileDownloadAsync()

 'ПРИМЕЧАНИЕ: Если мы вызываем функцию в асинхронном режиме, то должны

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

 'вызова метода 'irdaFileReceive.Status'

End Sub

Листинг 15.4. Класс IrDAFileSend
Option Strict On

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

'Этот класс является клиентом IrDA. Он осуществляет поиск сервера

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

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

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

Class IrDAFileSend

Private m_descriptionOfLastSendAttempt As String

Private m_IrDAServiceName As String

Private m_fileToSend As String

Private m_wasSenderStopped As Boolean


Public Enum SendStatus

 AttemptingToSend

 Finished_Successfully

 Finished_Aborted

 Finished_Error

End Enum


Private m_SendStatus As SendStatus

Public ReadOnly Property Status() As SendStatus

 Get

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

  SyncLock (Me)

   Return m_SendStatus

  End SyncLock

 End Get

End Property

Private Sub setStatus(ByVal newStatus As SendStatus)

 'Блокировка выполнения параллельных операций чтения/записи в m SendStatus

 SyncLock (Me)

  m_SendStatus = newStatus

 End SyncLock

End Sub


Public ReadOnly Property ErrorText() As String

 Get

  Return m_descriptionOfLastSendAttempt

 End Get

End Property


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

'КОНСТРУКТОР

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

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

 'Имя сокета IrDA, поиск которого мы хотим осуществить

 m_IrDAServiceName = irdaServiceName

 'Файл, который мы хотим передать

 m_fileToSend = fileToSend

End Sub


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

'Запускает новый поток для осуществления попытки отправки файла

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

Public Sub LoopAndAttemptIRSendAsync()

 'Мы находимся в режиме передачи

 setStatus(SendStatus.AttemptingToSend)

 'Пользователь пока что не отменил выполнение операции

 m_wasSenderStopped = False


 'Это функция, которую должен запустить на выполнение новый поток

 Dim threadEntryPoint As System.Threading.ThreadStart

 threadEntryPoint = _

  New System.Threading.ThreadStart(AddressOf LoopAndAttemptIRSend)


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

 'Создать новый поток и запустить его

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

 Dim newThread As System.Threading.Thread = _

  New System.Threading.Thread(threadEntryPoint)


 newThread.Start()

 'Вперед!

End Sub


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

'Входит в цикл и пытается передать файл посредством IR

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

Public Sub LoopAndAttemptIRSend()

 Dim irDASender As System.Net.Sockets.IrDAClient

 Dim streamOutToIrDA As System.IO.Stream

 Dim streamInFromFile As System.IO.Stream

 'Пользователь пока что не отменил выполнение операции

 m_wasSenderStopped = False

 setStatus(SendStatus.AttemptingToSend)


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

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

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

 While (True)

  'Значения всех этих переменных должны быть нулевыми до и после

  'вызова sendStream(...), если не было сгенерировано исключение!

  irDASender = Nothing

  streamOutToIrDA = Nothing

  streamInFromFile = Nothing


  'Попытаться передать поток

  Dim bSuccess As Boolean

  Try

   bSuccess = sendStream(mjdescriptionOfLastSendAttempt, _

    streamOutToIrDA, irDASender, streamInFromFile)

  Catch eUnexpected As System.Exception 'Неожиданная ошибка!!!

   setStatus(SendStatus.Finished_Error) 'Уведомить о сбое


   m_descriptionOfLastSendAttempt = _

    "Unexpected error in IR send loop. " + eUnexpected.Message


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

   'Освободить все распределенные нами ранее ресурсы

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

   If Not (streamOutToIrDA Is Nothing) Then

    Try

     streamOutToIrDA.Close()

    Catch

     'Поглотить любую ошибку

    End Try

    streamOutToIrDA = Nothing

   End If


   If Not (streamInFromFile Is Nothing) Then

    Try

     streamInFromFile.Close()

    Catch

     'Поглотить любую ошибку

    End Try

    streamInFromFile = Nothing

   End If


   If Not (irDASender Is Nothing) Then

    Try

     irDASender.Close()

    Catch

     'Поглотить любую ошибку

    End Try

    irDASender = Nothing

   End If

   Return 'Выход

  End Try


  'Проверить успешность выполнения

  If (bSuccess = True) Then

   m_descriptionOfLastSendAttempt = "Success!"

   setStatus(SendStatus.Finished Successfully)

   Return

  End If


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

  If (m_wasSenderStopped = True) Then

   m_descriptionOfLastSendAttempt = "User Aborted."

   setStatus(SendStatus.Finished_Aborted)

   Return

  End If


  'В противном случае... Нам пока не удалось обнаружить сервер IrDA,

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

  'и попытаемся найти сервер.

 End While

 'Мы никогда --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.