AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Laufende Programme unter Windows 7 - werden die unter- oder gar abgebrochen?
Thema durchsuchen
Ansicht
Themen-Optionen

Laufende Programme unter Windows 7 - werden die unter- oder gar abgebrochen?

Ein Thema von Delphi-Laie · begonnen am 23. Aug 2012 · letzter Beitrag vom 24. Aug 2012
Antwort Antwort
Seite 2 von 3     12 3      
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#11

AW: Laufende Programme unter Windows 7 - werden die unter- oder gar abgebrochen?

  Alt 24. Aug 2012, 15:48
Fazit: Es liegt an deinem Programm und nicht an Windows.
Daß neueres Windows damit nicht adäquat umgehen kann, ist in gewisser Weise Winzigweichs Schuld, denn Windows vorher machte auch nicht solche Anstalten darum.
Soviel zur "Schuldfrage".


Das interessiert mich nun doch näher: Mein Sortierkino läuft auch nur im VCL-(Haupt-)Thread, doch da macht Windows 7 - z.B. nach dem Start und darauffolgenden Abbruch des Bildschirmschoners - auch nicht solche Zicken mit dem hellblauen Rödelkreis. Warum, ist mir unklar. Mein weiter oben erwähntes Rechenprogramm gibt auch fortlaufend aus - allerdings nur in der Titelleiste des Formulares, weil die fortlaufend automatisch aktualisiert/aufgefrischt wird, nichts jedoch auf das Canvas wie das Animationsprogramm.

Puh, wenigstens dieses eine Mal Glück gehabt, denn an der graphikausgabeintensiven Sortieranimation auch mit einem zusätzlichen Thread (inkl. synchronize!) rumzumachen, verspüre ich keinen Antrieb.

Die Datenausführungsverhinderung für alle außer den explizit genannten oder nur für wichtige Windowsprogramme einzuschalten, klingt plausibel, funktioniert aber leider auch nicht: Die Berechnung wird dennoch gestoppt und der ge-/beliebte blaue Rödekreis erscheint erneut. Leider muß dazu der Computer bzw. Windows neu gestartet werden. Hat also MS/WW das dem Windows immer noch nicht komplett abgewöhnen können.

So, jetzt geht es an die Threadauslagerung der Berechnungen.

Danke noch einmal!

Geändert von Delphi-Laie (24. Aug 2012 um 16:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Laufende Programme unter Windows 7 - werden die unter- oder gar abgebrochen?

  Alt 24. Aug 2012, 16:33
Daß neueres Windows damit nicht adäquat umgehen kann, ist in gewisser Weise Winzigweichs Schuld, denn Windows vorher machte auch nicht solche Anstalten darum.
Das stimmt schlicht nicht. Klicke unter XP einfach ein paarmal in ein solches nicht reagierendes Fenster, dann kannst du dort das Verhalten provozieren. Bei einer Firmeninstallation wird dann in der Regel direkt angeboten das Programm zu beenden, bei der Home Edition standardmäßig nur angezeigt, dass es nicht reagiert.

Der große Unterschied ist hauptsächlich, dass Windows den ursprünglichen Fensterinhalt unter XP nicht zwischengespeichert hatte und deshalb das Fenster schlicht gar nicht mehr aktualisiert hat. Deshalb sah es so aus als ob es noch reagiert. Aber das war schlicht falsch, da es ja dennoch sein konnte, dass es nicht mehr reagiert. Das Problem für den User war so, dass er nicht erkennen konnte, wenn ein Programm schon abgestürzt war, und so ggf. ewig gewartet hat, obwohl das Programm schon tot war.

Dass das Programm abgebrochen wird, passiert bei mir auch nicht, es sei denn ich klicke das als Benutzer an. Ansonsten läuft die Berechnung bei mir normal weiter und das Programm berappelt sich wieder sobald es den Vorgang beendet hat und die Anzeige wieder aktualisiert.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#13

AW: Laufende Programme unter Windows 7 - werden die unter- oder gar abgebrochen?

  Alt 24. Aug 2012, 16:48
Zitat:
Klicke unter XP einfach ein paarmal in ein solches nicht reagierendes Fenster, dann kannst du dort das Verhalten provozieren.
Auch sehr schön zu erkennen, wenn man mit einem anderem Fenster vor dem "hängenden" Fenster rumwedelt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#14

AW: Laufende Programme unter Windows 7 - werden die unter- oder gar abgebrochen?

  Alt 24. Aug 2012, 17:08
Ist ja letztlich auch egal.

Ich begann, die Berechnungen in Threads auszulagern (jeweils immer nur einer), und da in diesen auf das Formular zurückgegriffen wird, sogar sauber mit synchronize. Funktioniert soweit auch, die Rechenergebnisse sind dieselben, der Taskmanager zeigt während der Berechnungen bei den Threads die Anzahl 2 an. Jedoch bin ich insofern ernüchtert, als daß das Formular während der Berechnungen leider nicht verschiebbar ist und auch nach "Darüberwischen" nicht neugezeichnet wird - sowohl unter Windows 2000 als auch (zunächst) unter Windows 7. Von Threads hatte ich eigentlich etwas mehr erwartet.

Anscheinend wird die Berechnung aber von außen doch nicht abgewürgt.

Edit: Das Auffrischen des Formulares während der Berechnungen funktioniert unter Windows 7 anscheinend doch, im Gegensatz zu Windows 2000.
Edit 2: Eher inkonsistent: Die Auffrischbarkeit des Formulares hängt vielleicht doch nicht davon ab, ob ein zusätzlicher Thread bereitgestellt wird.

Laßt es gut sein, danke noch einmal!

Geändert von Delphi-Laie (24. Aug 2012 um 17:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#15

AW: Laufende Programme unter Windows 7 - werden die unter- oder gar abgebrochen?

  Alt 24. Aug 2012, 17:16
Hi,
das klingt, als hättest du "zuviel synchronisiert" ... Bist du sicher dass die zeitaufwändige Berechnung im Thread passiert und nur kurz zur Anzeige synchronize() aufgerufen wird?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#16

AW: Laufende Programme unter Windows 7 - werden die unter- oder gar abgebrochen?

  Alt 24. Aug 2012, 17:18
Gut, die Threads müssen der GUI aber auch ein bissl Luft lassen.
Wenn sich ständig Threads mit der GUI synchronisieren und diese keine Zeit mehr für sich findet, dann bleibt sie natürlich auch hängen.

Wenn du was machen willst und es kommt jemand, der mit dir was machen möchte und noch ehe ihr fertig seid, steht schon der Nächste da und will auch was usw.,
dann hast du für deine Arbeit ja auch keine Zeit mehr.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#17

AW: Laufende Programme unter Windows 7 - werden die unter- oder gar abgebrochen?

  Alt 24. Aug 2012, 17:18
Hi,
das klingt, als hättest du "zuviel synchronisiert" ... Bist du sicher dass die zeitaufwändige Berechnung im Thread passiert und nur kurz zur Anzeige synchronize() aufgerufen wird?
Nein, es läuft alles (d.h. die komplette Berechnung) in der Synchronize-Prozedur. Das ist wahrscheinlich falsch....
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#18

AW: Laufende Programme unter Windows 7 - werden die unter- oder gar abgebrochen?

  Alt 24. Aug 2012, 17:22
Gut, die Threads müssen der GUI aber auch ein bissl Luft lassen.
Wenn sich ständig Threads mit der GUI synchronisieren und diese keine Zeit mehr für sich findet, dann bleibt sie natürlich auch hängen.

Wenn du was machen willst und es kommt jemand, der mit dir was machen möchte und noch ehe ihr fertig seid, steht schon der Nächste da und will auch was usw.,
dann hast du für deine Arbeit ja auch keine Zeit mehr.
Ja, wird allmählich klar.

Man kann synchronize, soweit ich weiß, keine Parameter übergeben, was für die laufende Ausgabe von Zwischenrechenergebnissen wichtig wäre. Es wird also alles grauenhaft umständlich oder gar unmöglich....

Sind eigentlich auch schon nur lesende Zugriffe auf die VCL-Elemente bereits "synchronize-pflichtig"?
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#19

AW: Laufende Programme unter Windows 7 - werden die unter- oder gar abgebrochen?

  Alt 24. Aug 2012, 17:29
Lässig: Ohne Synchronize klappt es mit dem Verschieben und dem Auffrischen des Formulares während der Berechnungen....
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#20

AW: Laufende Programme unter Windows 7 - werden die unter- oder gar abgebrochen?

  Alt 24. Aug 2012, 17:33
Es kommt drauf an was du lesen willst, denn Einiges ist praktisch threadsicher (vorallem wenn es wärend der Threadlaufzeit garantiert nicht verändert wird), aber Vieles nicht.

also Ja&Nein


Aber unabhängig von der VCL/Synchronize gibt es auch noch CriticalSections, ReadWriteSynchronizer, Events, Messages uvm.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 05:50 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