I am trying to make a filesystemwathcer that monitors all of the users drives
First declaring the control that will store the letters
Second getting the drives:
After that make the filesystemwathcers for each drive:
Here comes the problem
Add each handler i made them to add the information to 'listview1'
But i get the error:
First declaring the control that will store the letters
Dim lstFiles As New ListBox
Second getting the drives:
For Each drive_info As DriveInfo In DriveInfo.GetDrives() lstFiles.Items.Add(drive_info.Name) Next drive_info
After that make the filesystemwathcers for each drive:
Try Dim arrFSW() As FileSystemWatcher ReDim arrFSW(lstFiles.Items.Count - 1) For i As Integer = 0 To lstFiles.Items.Count - 1 ' strFile = lstFiles.Items(i) arrFSW(i) = New FileSystemWatcher arrFSW(i).Path = lstFiles.Items.Item(i).ToString arrFSW(i).Filter = "*.*" arrFSW(i).NotifyFilter = (NotifyFilters.LastAccess Or NotifyFilters.LastWrite Or NotifyFilters.FileName Or NotifyFilters.DirectoryName) arrFSW(i).IncludeSubdirectories = True AddHandler arrFSW(i).Changed, AddressOf FSWChanged AddHandler arrFSW(i).Deleted, AddressOf FSWDeleted AddHandler arrFSW(i).Renamed, AddressOf FSWRenamed arrFSW(i).EnableRaisingEvents = True Next Catch ex As Exception 'drives that are invalid/without files End Try
Here comes the problem
Add each handler i made them to add the information to 'listview1'
Public Sub FSWChanged(ByVal source As Object, ByVal e As FileSystemEventArgs) ListView1.Items.Add("File changed: " & e.FullPath.ToString & " change type: " & e.ChangeType) End Sub Public Sub FSWDeleted(ByVal source As Object, ByVal e As FileSystemEventArgs) ListView1.Items.Add("File: " & e.Name.ToString & " deleted") End Sub Public Sub FSWRenamed(ByVal source As Object, ByVal e As RenamedEventArgs) ListView1.Items.Add("File renamed from: " & e.OldName.ToString & " to: " & e.Name.ToString) End Sub
But i get the error:
Quote
Cross-thread operation not valid: Control 'ListView1' accessed from a thread other than the thread it was created on.