Das Programm stockt ohne Mausbewegung

Anfängerfragen zum Programmieren mit PureBasic.
thomas223
Beiträge: 8
Registriert: 03.02.2008 21:24

Das Programm stockt ohne Mausbewegung

Beitrag von thomas223 »

Hallo!!!

Ich hätte da noch einmal ein hoffendlich kleines Problem!
Ich habe ein kleines Windows Programm geschrieben welches nach einer Text Datei in einem extra Ordner suchen soll!
Dieser Text sollte dann ausgewertet werden und an einen Drucker geschickt werden!
Dieses Funktioniert auch alles allerdings nur wenn die Maus über dem Fenster geführt wird! sobald das Programm minnimiert im hintergrund läuft macht er nichts mehr!
Liegt es nun nur daran das ich das abpollen des Ordners an die falsche stelle gesetzt habe oder ist das bei Windows basierenden Programmen so üblich?
Kann ich soetwas fileicht in den Einstellungen von PB einstellen?

Danke im vorraus!

MfG Thomas

WaitWindowEvent(100)

TimeOut fehlte dann geht es! Erst nachdenken dann Posten! :iamwithstupid: :coderselixir:
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Das Programm stockt ohne Mausbewegung

Beitrag von NicTheQuick »

Das klingt aber für mich auch nicht nach einer vernünftigen Lösung mit dem TimeOut. Schau dir lieber mal Threads an.
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

Re: Das Programm stockt ohne Mausbewegung

Beitrag von Sunny »

Is jetz natürlich schwer zu sagen, da kein Code vorliegt aber ich würde jetz mal spontan sagen, dass du in den Klammern von "WaitWindowEvent" mal z.B.: ne "20" reinschreiben solltest.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Das Programm stockt ohne Mausbewegung

Beitrag von NicTheQuick »

Wenn etwas unabhängig von irgendwelchen Events läuft, macht man Threads und keine Delays (Timeouts) rein. Selbst das Nutzen von WindowEvent() statt WaitWindowEvent() ist nicht die Lösung.
Benutzeravatar
dige
Beiträge: 1239
Registriert: 08.09.2004 08:53

Re: Das Programm stockt ohne Mausbewegung

Beitrag von dige »

Das klingt wirklich nach nem WaitwindowEvent() das bei fehlenden Events den Programmablauf blockiert...
"Papa, ich laufe schneller - dann ist es nicht so weit."
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Das Programm stockt ohne Mausbewegung

Beitrag von ts-soft »

In einem Eventloop wird nur auf Ereignisse reagiert. Es gibt keinen Code in einem EventLoop
für den das nicht zutrifft!
Dies scheint hier aber nicht der Fall zu sein, also gibt es 2 mögliche Lösungen:
Entweder dem Code ein Ereignis zuordnen, z.B. einen Timer setzen oder wie
Nick bereits sagte einen Thread verwenden, wobei ich Anfängern aber lieber von
abrate.
Die Timeout Variante, halte ich für falsch, da der Code dann ja bei Timeout und
jedem anderem Ereignis ausgeführt wird und somit das System unnötig belastet
und auch zu endlosen Ereigniss-Ketten führen kann.

Ich hoffe diese Problem sollte vielleicht mal in der FAQ erläutert werden, es ist
so langweilig hier immer von denselben Fehlern zu lesen.

Im EventLoop gibt es nur Code, der auch einem Event zugeordnet ist!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten