Deutsch
Forum

Wie nutze ich die THREAD.PCU?

 

Stephan
Sonneborn
Hallo Leute, hallo iF,

ich habe folgendes Programmierproblem:
In einem Programm sollen (später) Messwerte über die serielle Schnittstelle oder eine Schnittstellenkarte eingelesen werden. Die Werte sollten so in ca. 40Hz - Takten ankommen.
Um das Programm vorab schon mal vorzubereiten, möchte ich einen Simulationsmodus einrichten, der mir die Werte generiert.
Jetzt zu dem Problem:
Ich frage alle Dialogobjekte (auch die, die zu Programmstart noch nicht existieren) in einer Hauptprogrammschleife ab. Das neue CLICKED() von XPROFAN 9 tut da sehr gute Dienste. Um nun die Werte zu generieren starte ich einen Timer, der das WAITINPUT zum Timerzeitpunkt durchbricht, um die Werte zu berechnen, aufzubereiten und anzuzeigen. Gleichzeitig werden aber auch die Dialogobjekte behandelt. Je kürzer der Timerwert eingestellt ist, desto schwieriger wird es, die Dialogobjekte abzufragen: sie reagieren einfach nicht mehr.

Jetzt habe ich mir gedacht, iFs THREAD.PCU dafür zu nutzen:
KompilierenMarkierenSeparieren
Wie aber mache ich das mit der THREAD.PCU? Geht das überhaupt? Also wie starte ich einen Nebenbei-Job innerhalb einens Profan-Programms und wie stoppe ich ihn wieder und kann ich so eine ganz normale Prozedur starten usw.
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
13.03.2005  
 



Perfect - genau für sowas isses gedacht.

1. Die DLG-Items prüfst Du auch weiterhin in der Hauptschleife ab.
2. Deine Timer beseitigst Du restlos - damit das Waitinput nicht mehr durchbrochen wird.

Grundsätzlich so:
KompilierenMarkierenSeparieren
thread.start 1,7// wenn sekündlicher aufruf der thread.do reicht. oder
thread.start 1,1// wenn die thread.do ständig laufen soll. (3=mittelwert)

whilenot exit%

    waitinput

    if clicked....

    wend

    thread.stop 1
    end

    proc thread.do

        parameters n&

        if n&=1

            machhierwadduwillst wären dessen waitinput wartet :)

        elseif n&=2

            wenn du einen 2. thread brauchst und dieses mit thread.start 2[,1-7] gestartet hast

        endif

    endproc

Hilft Dir das?

Salve, iF
 
13.03.2005  
 




Stephan
Sonneborn
Hallo iF,

Dankeschön! Das Tool funzt prima! Ich muss den Quellcode noch ein bißchen optimieren (CPU-Last > 20%), aber grundsätzlich läuft es genau so, wie ich es haben will.
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
13.03.2005  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.030 Betrachtungen

Unbenanntvor 0 min.
Walter08.05.2020
p.specht22.11.2019
E.T.26.12.2018
AndreasS07.12.2018
Mehr...

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

Stephan Sonneborn (2x)
iF (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie