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

на главную - закладки

Жанры

Программирование мобильных устройств на платформе .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
рейтинг книги
Зодчий. Книга IV

Кодекс Охотника. Книга XXXII

Винокуров Юрий
32. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXXII

Я еще князь. Книга XX

Дрейк Сириус
20. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я еще князь. Книга XX

Древесный маг Орловского княжества 3

Павлов Игорь Васильевич
3. Орловское княжество
Фантастика:
аниме
сказочная фантастика
фэнтези
попаданцы
гаремник
5.00
рейтинг книги
Древесный маг Орловского княжества 3

Враг из прошлого тысячелетия

Еслер Андрей
4. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Враг из прошлого тысячелетия

Путь к бессмертию 1

Покинтелица Евгений
1. Девятихвостый Богатырь
Фантастика:
попаданцы
сказочная фантастика
фэнтези
5.00
рейтинг книги
Путь к бессмертию 1

Дважды одаренный. Том III

Тарс Элиан
3. Дважды одаренный
Фантастика:
альтернативная история
аниме
фэнтези
фантастика: прочее
юмористическое фэнтези
5.00
рейтинг книги
Дважды одаренный. Том III

Наномашины, звереныш! Том 5

Новиков Николай Васильевич
5. Первый среди карапузов
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Наномашины, звереныш! Том 5

Глэрд VIII: Базис 2

Владимиров Денис
8. Глэрд
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Глэрд VIII: Базис 2

Шайтан Иван 6

Тен Эдуард
6. Шайтан Иван
Фантастика:
попаданцы
альтернативная история
историческое фэнтези
7.00
рейтинг книги
Шайтан Иван 6

Хозяин Теней 3

Петров Максим Николаевич
3. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Хозяин Теней 3

Горизонт Вечности

Вайс Александр
11. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Горизонт Вечности