Программирование мобильных устройств на платформе .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)
'==========================================
Поделиться:
Популярные книги
Возвышение Меркурия. Книга 7
7. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Жена со скидкой, или Случайный брак
Любовные романы:
любовно-фантастические романы
8.15
рейтинг книги
Совок 2
2. Совок
Фантастика:
альтернативная история
7.61
рейтинг книги
Прометей: каменный век
1. Прометей
Фантастика:
альтернативная история
6.82
рейтинг книги
Ты предал нашу семью
2. Предатели
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Уязвимость
Любовные романы:
современные любовные романы
7.44
рейтинг книги
Венецианский купец
1. Венецианский купец
Фантастика:
фэнтези
героическая фантастика
альтернативная история
7.31
рейтинг книги
Попаданка для Дракона, или Жена любой ценой
Любовные романы:
любовно-фантастические романы
7.17
рейтинг книги
Любимая учительница
1. совершенная любовь
Любовные романы:
современные любовные романы
эро литература
8.73
рейтинг книги
Воевода
5. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Деспот
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Мастер...
1. Мастер
Фантастика:
героическая фантастика
попаданцы
аниме
6.50
рейтинг книги
Не кровный Брат
Любовные романы:
эро литература
6.83
рейтинг книги
Не грози Дубровскому! Том III
3. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00