Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:
'Обеспечить многопоточную безопасность для предотвращения
'параллельного выполнения операций чтения/записи
SyncLock (Me)
m_ReceiveStatus = newStatus
End SyncLock 'end lock
End Sub
'--------------------------------------------------
' (in) filename: желаемое имя для входного файла IR
'--------------------------------------------------
Public Sub New(ByVal filename As String, ByVal irdaServiceName As String)
'Имя
сокета IrDA, который мы хотим открыть
m_IrDAServiceName = irdaServiceName
'Имя файла, в котором мы хотим сохранить полученные данные
m_fileNameForDownload = filename
End Sub
'----------------------------------------------------------
'Обеспечивает асинхронный прием файла через IR
' (in) filename: имя файла, в который осуществляется запись
'----------------------------------------------------------
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)
'==========================================
Поделиться:
Популярные книги
Учитель из прошлого тысячелетия
6. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Князь Андер Арес 5
5. Андер Арес
Фантастика:
историческое фэнтези
фэнтези
героическая фантастика
5.00
рейтинг книги
Неучтенный элемент. Том 6
6. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Газлайтер. Том 19
19. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Наномашины, звереныш! Том 5
5. Первый среди карапузов
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Портрет дьявола: Собрание мистических рассказов
Проза:
классическая проза
8.09
рейтинг книги
Ну, здравствуй, Герой!
2. Здравствуй, Мир!
Фантастика:
фэнтези
рпг
попаданцы
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 13
13. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
фэнтези
5.00
рейтинг книги
Третий Генерал: Том IX
8. Третий Генерал
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Слово мастера
11. Гибрид
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника XXVIII
28. Кодекс Охотника
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
По осколкам твоего сердца
2. Хулиган и новенькая
Любовные романы:
современные любовные романы
5.56
рейтинг книги
Мастер...
1. Мастер
Фантастика:
героическая фантастика
попаданцы
аниме
6.50
рейтинг книги
На границе империй. Том 7
7. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
6.75