Procedure Regelmäßig ausfühen
Procedure Regelmäßig ausfühen
Hallo,
Ich suche eine möglichkeit eine Procedur alle 20 Sekunden auführen zu lassen.
in der Wartezeit soll aber Systray Menue weiterhin funktionieren und die Schleife unterbrechen zu können.
WIe kann ich so etwas machen?
Danke Euch schon mal
Gruß Rene
Ich suche eine möglichkeit eine Procedur alle 20 Sekunden auführen zu lassen.
in der Wartezeit soll aber Systray Menue weiterhin funktionieren und die Schleife unterbrechen zu können.
WIe kann ich so etwas machen?
Danke Euch schon mal
Gruß Rene
Re: Procedure Regelmäßig ausfühen
Kommt drauf an, was deine Prozedur machen soll. Du kannst das mit Hilfe eines Timers machen oder in einem Thread.
Re: Procedure Regelmäßig ausfühen
Die Procedur öffnet eine Daten bank ließt sie aus und gibt die einzelnen Datensätze über einen Bondrucker aus
An einen Thread habe ich auch schon gedacht, aber habe es nicht hinbekommen
So viel ich gesehen habe muss ich alle Variablen die benötigt werden mit übergeben.
Das wären ne ganze menge
An einen Thread habe ich auch schon gedacht, aber habe es nicht hinbekommen
So viel ich gesehen habe muss ich alle Variablen die benötigt werden mit übergeben.
Das wären ne ganze menge
- 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: Procedure Regelmäßig ausfühen
Thread ist nicht notwendig:
Gruß
Thomas
Code: Alles auswählen
EnableExplicit
Procedure Alle20Sek()
Debug "Schon wieder 20 Sekunden um!"
EndProcedure
Define img = LoadImage(#PB_Any, #PB_Compiler_Home + "Examples\Sources\Data\CdPlayer.ico")
OpenWindow(0, 0, 0, 0, 0, "", #PB_Window_Invisible)
AddSysTrayIcon(1, WindowID(0), ImageID(img))
AddWindowTimer(0, 1, 20000)
BindEvent(#PB_Event_Timer, @Alle20Sek(), 0, 1)
If CreatePopupMenu(0) ; hier beginnt das Erstellen des Popup-Menüs...
MenuItem(1, "Open") ; Sie können alle Befehle zum Erstellen eines Menüs
MenuItem(2, "Save") ; verwenden, ganz wie bei einem normalen Menü...
MenuItem(3, "Save as")
MenuItem(4, "Quit")
MenuBar()
OpenSubMenu("Recent files")
MenuItem(5, "PureBasic.exe")
MenuItem(6, "Test.txt")
CloseSubMenu()
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_SysTray
Select EventType()
Case #PB_EventType_LeftClick
DisplayPopupMenu(0, WindowID(0))
EndSelect
Case #PB_Event_Menu
Select EventMenu()
Case 1
Debug "Open"
; ....
EndSelect
EndSelect
ForEver
Thomas
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Procedure Regelmäßig ausfühen
Danke dir, habe jetzt doch noch mal mit Thread rum,gespielt und es Funktioniert
- 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: Procedure Regelmäßig ausfühen
Naja, mit Thread und Threadsicherheit ist es so eine Sache, in der kurzen Zeit wirste das nicht testen können,Rene-RNI hat geschrieben:Danke dir, habe jetzt doch noch mal mit Thread rum,gespielt und es Funktioniert
die Fehler treten oft erst nach Stunden laufzeit auf. Da Du noch beim programmieren Deiner Anwendung bist,
können noch viele Sachen dazu kommen, die Threads veranlassen ungewollte Effekte zu haben.
Solange es ohne Threads geht, nutze es lieber ohne Threads! Erst wenn Deine GUI stockt, könnten Threads
sinnvoll sein, solange dies nicht der Fall ist, wird das Programm eher langsamer durch Threads (Threadsicherheit
aktiviert) und Fehleranfälliger.
Gruß
Thomas
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Procedure Regelmäßig ausfühen
Wer sagt das? Du? Dann machst du was falsch! Ich habe jahrelange Erfahrungen in Anwendungsentwicklung mit Aufgabenverteilung bei grösseren Programmen und kein meiner Programme ist jemals durch Threads abgestürzt oder hat aussergewöhnliche Bugs bei Langlaufzeiten! Wenn man gewisse Dinge falsch macht, wie das zugreifen auf globalen gemeinsamen Variablen oder Gadgets, dann können ungewöhnliche Fehler auftreten, aber man muss auch sauber und bedacht programmieren und wenn man es richtig umsetzt, dann passieren auch solche Anfängerfehler nicht. Es hat aber nichts mit Threads zu tun, sondern mit der eigentlichen Codestrukturierung und der Codesauberkeit ebenso der Umsetzung. Es können auch Bugs mit Addwindowtimer entstehen, wenn du einen schmutzigen Code hinzauberst. Schau mal die professionellen Programmen an. Die grösseren Programmen verwenden aufgrund der Komplexität Threads, um Aufgaben gezielt zu verteilen und sie sind nicht automatisch buggy, weil Threads verwendet werden. Wenn einer Variablen nicht sauber deklariert sind die Variablen schuld daran? Falls deine Programme andauernd abstürzen, dann verallgemeine bitte nicht gleich, weil es sich laut deiner Argumentation anhört, dass Threads immer buggy sind was nicht stimmt, sonst müsste alles komplett abstürzen, aber das tut es nicht.ts-soft hat geschrieben:mit Thread und Threadsicherheit ist es so eine Sache ... die Fehler treten oft erst nach Stunden laufzeit auf. ... die Threads veranlassen ungewollte Effekte zu haben ... und Fehleranfälliger.

Oder ich mach was falsch und meine Programme laufen zu gut mit Threads.

Re: Procedure Regelmäßig ausfühen
Da muss ich Gronkh zustimmen. Ich habe auch keine Thread probleme und komme auch so gut klar. Ich habe im Hintergrund ein Program von mir laufen und es läuft und läuft. 

- 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: Procedure Regelmäßig ausfühen
Falls Ihr es nicht bemerkt habt, wir sind hier im Anfängerforum! Anfänger und Threads geht meistens schief, egal ob bei euch alles glatt geht.
Threads werden in diesem Unterforum nur empfohlen, wenn es nicht anders zu lösen ist.
Gruß
Thomas
Threads werden in diesem Unterforum nur empfohlen, wenn es nicht anders zu lösen ist.
Gruß
Thomas
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- Chimorin
- Beiträge: 451
- Registriert: 30.01.2013 16:11
- Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit
Re: Procedure Regelmäßig ausfühen
Das stimmt auch. Ich glaube nicht, dass sich ein waschechter Anfänger gleich mit Semaphoren und Mutexen rumplagen sollte. Geschweige denn, dass es am Anfang wichtig wäre, sich mit Threads zu beschäftigen 
