Шрифт:
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
'Если прослушивание не было прекращено,