Seite 1 von 1

[gelöst]ordnerüberwachung

Verfasst: 28. März 2011 09:25
von redbulls
hi !
Ich möchte ein Programm schreiben, dass die ganze Zeit einen Ordner überwacht. Sobald eine Datei in diesen Ordner eingefügt wird, soll der Programmablauf beginnen, der nicht weiter wichtig ist.

Meine Frage ist jetz wie ich das prinzipiell angehn soll. Ich weiß wie ich einen Ordner überwache (QFileSystemWatcher) aber das mit dem Multithreading ist mir noch unklar, weil es könnte ja sein, dass ein Datei eingefügt wird, während das Programm gerade den auslösenden Task ausführt, dann würde diese Datei übersehen werden.

Hat vl. einer eine Erfahrung oder einen Tipp. Ich stell mir eine Queue vor, aber habe in diesem Bereich leider noch wenig Ahnung. Danke für die Hilfe.

lg :D

Verfasst: 28. März 2011 12:24
von upsala
=> Forumssuche. Dieses Thema hatten wie vor kurzem

Verfasst: 28. März 2011 14:18
von redbulls
hast du den link? find nämlich leider nichts...

Verfasst: 28. März 2011 16:55
von upsala

Verfasst: 29. März 2011 09:05
von redbulls
das beantwortet aber nicht meine Frage, aber ich bin selbst schon draufgekommen:

man verwendet QSignalSpy, der merkt sich alle Signals, man kann sich das Multithreading sparen!

Verfasst: 29. März 2011 09:13
von upsala
Achso, dir gehts vor allem um die Signale. Signale gehen nicht verloren, (außer du hast sie blockiert mit QObject::blockSignals.

Verfasst: 29. März 2011 13:15
von redbulls
wenn ich QSignalSpy nicht verwende, würden die Signale schon verloren gehen oder?
also wenn ein Signal gesendet wird, während das Programm nicht empfangen kann, würde das Signal schon verloren gehen...oder habe ich unrecht?
:)

Verfasst: 29. März 2011 16:28
von upsala
Signale gehen nicht verloren.

Entweder sie werden direkt zugestellt (führen zur ausfühung des Slots) oder sie werden in die Event-Qeue einsortiert. Und dieses Verhalten lässt sich über den 5. connect-Parameter festlegen.

Verfasst: 30. März 2011 09:38
von redbulls
ok danke für deine Hilfe!! :D