Несмотря на то, что потоки выполняются одновременно, каждый поток имеет свой независимый поток выполнения. Один поток не может вводить команды в поток выполнения другого потока, вызывая его методы (например, вызывая stopIt
).
Так что еще мы можем сделать? Ну, кроме очевидного варианта использования тайм-аута, вы можете использовать другой поток для создания фиктивного файла, скажем, который запускает событие IN_CREATE, которое затем может обработать MyProcessing.
Я вижу, MyProcessing(self)
знает self
, поэтому он может установить self.done = True
, (где self
- это многопоточность. Экземпляр нитей, а не экземпляр MyProcessing
.) MyProcessing
может затем удалить фиктивный файл. .
Тогда вы могли бы использовать
if (not self.done) and self.notifier.check_events():
print "check_events is True"
self.notifier.read_events()
для выхода из чека без установки времени ожидания.