使用 Thread 将文件从 PC 移动到远程设备
Using Thread Moving Files from PC to Remote Device
使用 RAPI2
将文件从 PC 发送到远程设备。
当使用不带 Threads
的行时,它工作正常:
RemoteFile.CopyFileToDevice(PdtRemoteDevice, "C:\sample.txt", "\test\sample.txt", True)
但是当我尝试将上面的那行放在 Thread
中时,它 returns 出现设备未连接的错误。
如何使用 Thread 使用 RAPI2
的 CopyFileToDevice
?
不使用 Thread
会使应用程序看起来像挂起。所以,我认为用户不会喜欢一个会说没有响应的应用程序。
我的代码:
Imports System.Devices
Imports System.Devices.RemoteDeviceManager
Public Class FormHome
Dim PdtRemoteDevice As RemoteDevice
Dim Devicemanager As New RemoteDeviceManager
Private Sub ButtonHomeCopyToDevice_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonHomeCopyToDevice.Click
PdtRemoteDevice = Devicemanager.Devices.FirstConnectedDevice
If PdtRemoteDevice Is Nothing Then
MessageBox.Show("No Device Connected, Please Try Again")
Exit Sub
Else
Dim Th As Thread
Th = New Thread(AddressOf UploadDatabase)
Th.IsBackground = True
Th.Start()
End If
End Sub
Private Sub UploadDatabase()
Using PdtRemoteDevice = Devicemanager.Devices.FirstConnectedDevice
If Not (PdtRemoteDevice Is Nothing) Then
RemoteFile.CopyFileToDevice(PdtRemoteDevice, "C:\sample.txt", "\test\sample.txt", True)
End If
End Using
End Sub
End Class
试试这个,如果有效请告诉我:
Private Sub UploadDatabase()
Using rdm As New RemoteDeviceManager
Using d As RemoteDevice = rdm.Devices.FirstConnectedDevice
If Not (d Is Nothing) Then
RemoteFile.CopyFileToDevice( _
d, "C:\sample.txt", "\test\sample.txt", True)
End If
End Using
End Using
End Sub
创建一个表单,添加 RAPI2 库作为引用,然后添加两个按钮和此代码:
Imports System.Devices
Imports System.Devices.RemoteDeviceManager
Imports System.Devices.RemoteDevice
Imports System.Devices.RemoteFile
Public Class Form1
Dim dev As RemoteDevice
Dim mgr As New System.Devices.RemoteDeviceManager
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
dev = mgr.Devices.FirstConnectedDevice
If dev Is Nothing Then
MsgBox("No device connected")
Else
MsgBox("Connected to: " & dev.Name)
End If
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim RAPIfile As RemoteFile
dev = mgr.Devices.FirstConnectedDevice
Try
RAPIfile.CopyFileToDevice(dev, "C:\temp\test1.txt", "\Application\Inventory\test1.txt", True)
Catch
MsgBox("error")
End Try
RAPIfile = Nothing
End Sub
End Class
使用 RAPI2
将文件从 PC 发送到远程设备。
当使用不带 Threads
的行时,它工作正常:
RemoteFile.CopyFileToDevice(PdtRemoteDevice, "C:\sample.txt", "\test\sample.txt", True)
但是当我尝试将上面的那行放在 Thread
中时,它 returns 出现设备未连接的错误。
如何使用 Thread 使用 RAPI2
的 CopyFileToDevice
?
不使用 Thread
会使应用程序看起来像挂起。所以,我认为用户不会喜欢一个会说没有响应的应用程序。
我的代码:
Imports System.Devices
Imports System.Devices.RemoteDeviceManager
Public Class FormHome
Dim PdtRemoteDevice As RemoteDevice
Dim Devicemanager As New RemoteDeviceManager
Private Sub ButtonHomeCopyToDevice_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonHomeCopyToDevice.Click
PdtRemoteDevice = Devicemanager.Devices.FirstConnectedDevice
If PdtRemoteDevice Is Nothing Then
MessageBox.Show("No Device Connected, Please Try Again")
Exit Sub
Else
Dim Th As Thread
Th = New Thread(AddressOf UploadDatabase)
Th.IsBackground = True
Th.Start()
End If
End Sub
Private Sub UploadDatabase()
Using PdtRemoteDevice = Devicemanager.Devices.FirstConnectedDevice
If Not (PdtRemoteDevice Is Nothing) Then
RemoteFile.CopyFileToDevice(PdtRemoteDevice, "C:\sample.txt", "\test\sample.txt", True)
End If
End Using
End Sub
End Class
试试这个,如果有效请告诉我:
Private Sub UploadDatabase()
Using rdm As New RemoteDeviceManager
Using d As RemoteDevice = rdm.Devices.FirstConnectedDevice
If Not (d Is Nothing) Then
RemoteFile.CopyFileToDevice( _
d, "C:\sample.txt", "\test\sample.txt", True)
End If
End Using
End Using
End Sub
创建一个表单,添加 RAPI2 库作为引用,然后添加两个按钮和此代码:
Imports System.Devices
Imports System.Devices.RemoteDeviceManager
Imports System.Devices.RemoteDevice
Imports System.Devices.RemoteFile
Public Class Form1
Dim dev As RemoteDevice
Dim mgr As New System.Devices.RemoteDeviceManager
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
dev = mgr.Devices.FirstConnectedDevice
If dev Is Nothing Then
MsgBox("No device connected")
Else
MsgBox("Connected to: " & dev.Name)
End If
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim RAPIfile As RemoteFile
dev = mgr.Devices.FirstConnectedDevice
Try
RAPIfile.CopyFileToDevice(dev, "C:\temp\test1.txt", "\Application\Inventory\test1.txt", True)
Catch
MsgBox("error")
End Try
RAPIfile = Nothing
End Sub
End Class