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, 5461 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
Ähnliche Inhalte
Windows Update
Immer wieder Probleme mit WSUS (W10 u W2k16 ) (4)

Frage von Leo-le zum Thema Windows Update ...

Netzwerke
gelöst PfSense: Probleme mit Wirksamkeit von Rules (9)

Frage von Fenris14 zum Thema Netzwerke ...

SAN, NAS, DAS
Fujitsu Q800 Probleme bei Domäneneinbindung

Frage von galnar zum Thema SAN, NAS, DAS ...

Mac OS X
Adobe Acrobat Probleme (6)

Frage von uridium69 zum Thema Mac OS X ...

Heiß diskutierte Inhalte
Viren und Trojaner
gelöst Wie werde ich den Mist "fanli90" wieder los? (18)

Frage von Taumel zum Thema Viren und Trojaner ...

Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (17)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...

Grafikkarten & Monitore
Neue Graifkkarte - kein Bild (10)

Frage von bestelitt zum Thema Grafikkarten & Monitore ...