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

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)

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

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

Перейти на страницу:

Похожие книги