Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Probleme mit FileSystemWatcher (Thread - Übergabe )

Frage Entwicklung VB for Applications

Mitglied: BadFsaadKl

BadFsaadKl (Level 1) - Jetzt verbinden

02.09.2009, aktualisiert 20:33 Uhr, 5446 Aufrufe, 1 Kommentar

Hallo zusammen,

ich habe einen kleinen FileSystemWatcher gebaut, welcher sich das zu überwachende Verzeichniss aus einem Vorhergehenden Formular bezieht.
Der Watcher startet auch ohne Probleme, findet die Dateien mit den Veränderungen...
Aber er gibt mir das Ergebniss nicht in ein Lable aus.

Als Fehler kommt:

"Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement lbl_Watcher erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde."

in der Zusammenfassung sieht der Code so aus:

01.
 
02.
imports system.io 
03.
 
04.
Public Class Watcher 
05.
    Private Path2Watch As String 
06.
    Private fsw As FileSystemWatcher 
07.
    Private mEvt As WaitForChangedResult 
08.
 
09.
Private Sub cmd_startwatch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_startwatch.Click 
10.
 
11.
        fsw = New FileSystemWatcher 
12.
        Path2Watch = Directory.GetCurrentDirectory() 
13.
        fsw.Path = Path2Watch 
14.
        fsw.IncludeSubdirectories = True 
15.
 
16.
        AddHandler fsw.Created, _ 
17.
          New FileSystemEventHandler(AddressOf IsCreated) 
18.
 
19.
        AddHandler fsw.Changed, _ 
20.
          New FileSystemEventHandler(AddressOf IsChanged) 
21.
 
22.
        AddHandler fsw.Deleted, _ 
23.
          New FileSystemEventHandler(AddressOf IsDeleted) 
24.
 
25.
        AddHandler fsw.Renamed, _ 
26.
          New RenamedEventHandler(AddressOf IsRenamed) 
27.
 
28.
        While True 
29.
            mEvt = fsw.WaitForChanged(WatcherChangeTypes.All) 
30.
        End While 
31.
    End Sub 
32.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
33.
Private Sub IsCreated(ByVal source As Object, _ 
34.
    ByVal evt As FileSystemEventArgs) 
35.
        If fsw.IncludeSubdirectories = True Then 
36.
        lbl_Watcher.Text = (evt.FullPath + " wurde erstellt") 
37.
        Else 
38.
        lbl_Watcher.Text = (evt.Name + " wurde erstellt") 
39.
        End If 
40.
    End Sub 
41.
....
und genau bei dem punkt, wo er den Ihnhalt an das Lable übergeben soll, bricht das Script ab...
die Variable "evt.FullPath" hat die richtigen Werte...gibt diese aber nicht weiter....

hat jemand eine Lösung ???
Oder hab ich irgendwo nur eine Deklaration vergessen ???

Danke
Mitglied: gijoe
03.09.2009 um 01:21 Uhr
Hi,
ich kenne mich in deiner Sprache nicht aus, arbeite aber mit C#. Kann es sein dass du mit Threads arbeitest?

Ich rate jetzt mal, dass du aus einem Thread heraus etwas am GUI verändern willst (dein Label). Das darf allerdings ausschliesslich vom Main-Thread her passieren! Wenn du aus einem anderen Thread das Label ändern möchtest, musst du das über einen Dispatcher lösen.

Google doch mal nach wpf vb.net + dispatcher.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Crontab mit Shell Probleme (9)

Frage von mschaedler1982 zum Thema Batch & Shell ...

Windows 7
gelöst Sind euch verstärkte Probleme bei Windows 7 Updates aufgefallen? (4)

Frage von RadioHam zum Thema Windows 7 ...

Cloud-Dienste
gelöst OwnCloud 8 Probleme mit Vorschaubildern auf Mobilgeräten (1)

Frage von zeroblue2005 zum Thema Cloud-Dienste ...

Windows 10
gelöst VPN Verbindung Probleme (7)

Frage von Yeter2 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...