Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:
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
'Мы никогда не попадем в это место программы при выполнении
End Sub
'----------------------------------------------------------------------
'Попытаться передать поток ввода-вывода (например, файл) посредством IR
'[возвращаемое значение]:
' true: успешная передача файла
' false: файл не был успешно передан
'----------------------------------------------------------------------
Private Function sendStream(ByRef errorDescription As String, _
ByRef streamOutToIrDA As System.IO.Stream, _
ByRef irDASender As System.Net.Sockets.IrDAClient, _
ByRef streamInFromFile As System.IO.Stream) As Boolean
errorDescription = ""
'----------------------------
'Создание нового клиента IRDA
'----------------------------
Try
'-------------------------------------------------------
'Возврат произойдет довольно быстро. Клиент будет выбран
'и возвращен, если прослушивающие клиенты отсутствуют.
'-------------------------------------------------------
Поделиться:
Популярные книги
Страх
2. Дети Арбата
Проза:
историческая проза
9.49
рейтинг книги
Я все еще барон
4. Дорогой барон!
Фантастика:
боевая фантастика
5.00
рейтинг книги
Зодчий. Книга IV
4. Зодчий Империи
Фантастика:
аниме
фэнтези
попаданцы
7.00
рейтинг книги
Кодекс Охотника. Книга XXXII
32. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Я еще князь. Книга XX
20. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Древесный маг Орловского княжества 3
3. Орловское княжество
Фантастика:
аниме
сказочная фантастика
фэнтези
попаданцы
гаремник
5.00
рейтинг книги
Враг из прошлого тысячелетия
4. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Путь к бессмертию 1
1. Девятихвостый Богатырь
Фантастика:
попаданцы
сказочная фантастика
фэнтези
5.00
рейтинг книги
Дважды одаренный. Том III
3. Дважды одаренный
Фантастика:
альтернативная история
аниме
фэнтези
фантастика: прочее
юмористическое фэнтези
5.00
рейтинг книги
Наномашины, звереныш! Том 5
5. Первый среди карапузов
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Глэрд VIII: Базис 2
8. Глэрд
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Шайтан Иван 6
6. Шайтан Иван
Фантастика:
попаданцы
альтернативная история
историческое фэнтези
7.00
рейтинг книги
Хозяин Теней 3
3. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Горизонт Вечности
11. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00