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, 5492 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 ..
Ähnliche Inhalte
Windows 7
Performance Probleme bei Programmen und Windows (10)

Frage von Kunzi333 zum Thema Windows 7 ...

Windows 10
gelöst Win10 Creators Update - Probleme mit Netzwerkkarten (13)

Frage von Fenris14 zum Thema Windows 10 ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(38)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
POS Hardware und alternativen zu Raid 1? (21)

Frage von Brotkasten zum Thema Festplatten, SSD, Raid ...

Viren und Trojaner
Verschlüsselungstrojaner simulieren (18)

Frage von AlbertMinrich zum Thema Viren und Trojaner ...

Server-Hardware
gelöst Empfehlung KVM over IP Switch (8)

Frage von Androxin zum Thema Server-Hardware ...

Ubuntu
Nextcloud 12 Antivirus App for Files (8)

Frage von horstvogel zum Thema Ubuntu ...