Чтение онлайн

ЖАНРЫ

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

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

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

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

Поделиться с друзьями: