Вход/Регистрация
Программирование мобильных устройств на платформе .NET Compact Framework
вернуться

Салмре Иво

Шрифт:

 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

  • Читать дальше
  • 1
  • ...
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: