【发布时间】:2017-01-31 06:50:18
【问题描述】:
我们有一个现有的 Windows 服务来移动文件(7 个文件、5 个 *event.xdf、1 个 statistics.xdf 和 1 个 order.xdf 文件)并将其转换为 xml。
我创建了一个 Windows 服务,在它被其他 Windows 服务移动之前复制所有 7 个文件。我只能复制 3 个 *event.xdf、1 个 statistics.xdf 和 1 个 order.xdf。
我错过了 2 个 event.xdf。
这是我的代码逻辑
我为每个不同的文件创建一个线程并复制每个文件。
将事件复制到临时文件夹:
thXDFevent = New System.Threading.Thread(AddressOf backup_xdf_events)
thXDFevent.IsBackground = True
thXDFevent.Start()
'order
thXDForder = New System.Threading.Thread(AddressOf backup_xdf_order)
thXDForder.IsBackground = True
thXDForder.Start()
'statistics
thXDFstatistics = New System.Threading.Thread(AddressOf backup_xdf_statistics)
thXDFstatistics.IsBackground = True
thXDFstatistics.Start()
功能:
Private Sub backup_xdf_events()
Try
While (True)
getXDFevents()
End While
Catch ex As Exception
'EventLog1.WriteEntry("Services XDF error:" & strDate.ToString)
End Try
End Sub
Private Sub getXDFevents()
Dim f As String
For Each f In Directory.GetFiles("C:\POS\", "*event.xdf")
My.Computer.FileSystem.CopyFile("C:\POS\" & Path.GetFileName(f), xdf_temp & Path.GetFileName(f), True)
Next f
System.Threading.Thread.Sleep(500)
End Sub
Private Sub backup_xdf_order()
Try
While (True)
getXDForder()
End While
Catch ex As Exception
'EventLog1.WriteEntry("Services XDF error:" & strDate.ToString)
End Try
End Sub
Private Sub getXDForder()
Dim f As String
For Each f In Directory.GetFiles("C:\POS\", "*order.xdf")
My.Computer.FileSystem.CopyFile("C:\POS\" & Path.GetFileName(f), xdf_temp & Path.GetFileName(f), True)
Next f
System.Threading.Thread.Sleep(500)
End Sub
Private Sub backup_xdf_statistics()
Try
While (True)
getXDFstatistics()
End While
Catch ex As Exception
'EventLog1.WriteEntry("Services XDF error:" & strDate.ToString)
End Try
End Sub
Private Sub getXDFstatistics()
Dim f As String
For Each f In Directory.GetFiles("C:\POS\", "*statistics.xdf")
My.Computer.FileSystem.CopyFile("C:\POS\" & Path.GetFileName(f), xdf_temp & Path.GetFileName(f), True)
Next f
System.Threading.Thread.Sleep(500)
End Sub
【问题讨论】:
-
这不正是FileSystemWatcher 的用途吗?
标签: vb.net multithreading