2017-06-07 5 views
0

Ich bin neu in Python und Watchdog, und wurde durch das Quickstart-Beispiel verwirrt. Im Beispiel gibt es einen Block von Code wie folgt aus:Watchdog Observer Methode

self.observer.start() 
try: 
    while True: 
     time.sleep(5) 
except: 
    self.observer.stop() 
    print('Error') 

self.observer.join() 

ich keine Dokumentationen über die start, stop und join Methode finden konnten. Auch, obwohl ich weiß, dass die While-Schleife innerhalb versuchen, außer wahrscheinlich macht den Beobachter für alle 5 Sekunden laufen, verstehe ich nicht, wie es funktioniert?

Kann mir jemand erklären, was die drei Methoden machen und wie funktioniert die Schleife?

Antwort

1

Update: Ich korrigierte meine Antwort basierend auf @Amit Gupta Post.


Nach einigen Recherchen fand ich, dass alle drei Methoden zu threading.Thread Objekt gehören.

self.observer.start() erstellt einen neuen Thread,

While True: time.sleep(1) Hauptthread

Wenn Programmstopp am Laufen hält, self.observer.stop() hat einige Arbeit vor dem Thread zu beenden. (@Amit Gupta)

self.observer.join() wird benötigt, um einen Thread ordnungsgemäß zu beenden "blockiert den Thread, in dem Sie den Anruf tätigen, bis (self.observer) fertig ist." wie gesagt von Erik Allik in Use of threading.Thread.join()

0

Threading.Thread bietet keine Implementierung für stop(). Lesen Sie here. Stop() hier ist spezifisch für Observer und in diesem Beispiel Code wird es den Thread beim Empfang einer Ausnahme stoppen. Rest der Sachen, die Sie geschrieben haben, ist richtig.