AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Formular Aktuallisierung

Ein Thema von CADSDFrank · begonnen am 6. Okt 2008 · letzter Beitrag vom 7. Okt 2008
Antwort Antwort
CADSDFrank

Registriert seit: 18. Jan 2008
Ort: Penzberg
7 Beiträge
 
Turbo Delphi für Win32
 
#1

Formular Aktuallisierung

  Alt 6. Okt 2008, 21:20
Ich habe in einem Programm aufwändige numerische Simulationen laufen, wobei in regelmäßigen Zeitabständen (ca. je 10 – 50 Sekunden) eine graphische Aktuallisierung der Simulations-zwischen-ergebnisse in einem Formular (über Repaint) ausgegeben werden. Ein Prozessor ist dabei voll ausgelastet. Solange ich keine anderen Arbeiten parallel ausführe (z.B. Fenster verschieben, andere Programme starten, Fenster schließen und wieder öffnen) läuft die graphische Aktuallisierung normal. Sobald ich parallele Arbeiten starte läuft die Simulation im Hintergrund weiter, aber die graphische Aktuallisierung funktioniert nicht mehr.
Kann mir evtl. jemand weiterhelfen, ob es irgendein Ereignis gibt, das ich hier zusätzlich verarbeiten muß oder ein andere Vorschläge für eine Lösung, dass die graphische Aktuallisierung weiterläuft?
Vielen Dank
Frank
Frank
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#2

Re: Formular Aktuallisierung

  Alt 6. Okt 2008, 21:30
Läuft die Simulation in einem eigenen Thread? Wenn nein, könnte bzw. sollte das dein Problem beheben! Denn dann läuft dein Formular quasi "gleichberechtigt" neben der Simulation...
  Mit Zitat antworten Zitat
CADSDFrank

Registriert seit: 18. Jan 2008
Ort: Penzberg
7 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Formular Aktuallisierung

  Alt 6. Okt 2008, 21:38
Nein, leider läuft noch alles in einem "normalen" Programm. Habe aber auch schon überlegt, die Simulation in einem eigenen Tread laufen zu lassen oder auf mehrere Treads aufzuteilen, um mehrere Prozessoren besser auszulasten. Leider habe ich noch keine Erfahrungen mit Tread-Programmierung. Werde mich also einarbeiten müssen. Wo gibt es denn die besten Programmierbeispiele dafür?
Frank
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

Re: Formular Aktuallisierung

  Alt 6. Okt 2008, 22:06
schau mal hier. da hat luckie ein recht gutes tutorial geschrieben!
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von smallsmoker
smallsmoker

Registriert seit: 12. Nov 2007
Ort: Duisburg
283 Beiträge
 
#5

Re: Formular Aktuallisierung

  Alt 6. Okt 2008, 22:08
application.processmessages ?
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#6

Re: Formular Aktuallisierung

  Alt 6. Okt 2008, 22:33
was?

das wäre eigentlich die passende antwort auf deine deine, smallsmoker. äußerst kurz, sehr knapp und teilweise nicht sehr hilfreich. ich denke, dass dir doch ein wenig mehr text dazu einfallen würde? sicherlich wäre es kein lerneffekt, wenn du ihm die komplette applikation geben würdest, aber ein wenig mehr an beschreibung wäre doch nicht schlecht, oder?!

dann hol ich das nach, in form eines zitats aus der hilfe:
Zitat:
Durch einen Aufruf von ProcessMessages ermöglichen Sie der Anwendung, die Botschaften in der Warteschlange abzuarbeiten. ProcessMessages durchläuft die Windows-Botschaftswarteschlange so lange, bis diese leer ist, und gibt die Steuerung dann wieder an die Anwendung zurück.
d.h. wenn du das in eine schleife einarbeitest, welche die berechnungen vornimmt, dann kannst du während die berechnung läuft deine form verschieben, da eben das verschieben nachrichten erzeugt, welche dann "parallel" (ist ja nicht wirklich parallel ) abgearbeitet werden. nun ist es aber so, dass jedes mal wenn Application.ProcessMessages aufgerufen wird deine schleife anhält. somit dauert die eigentliche berechnung noch länger, ergo ist dies nicht unbedingt zu empfehlen. sinnvoller wäre hier mit sicherheit ein thread, da dieser (bei mehreren prozessoren) wirklich parallel läuft.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
CADSDFrank

Registriert seit: 18. Jan 2008
Ort: Penzberg
7 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Formular Aktuallisierung

  Alt 7. Okt 2008, 19:07
Vielen Dank,
ich werde mich mit beiden Vorschlägen beschäftigen.
Frank
Frank
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz