![]() |
Hohe Auslastung - Programm hängt
Hallo!
Ich habe ein Programm zur Konvertierung von Bildern mit C# geschrieben. Zu Testzwecken habe ich nun 100 jpg-Bilder (315MB) durch das Programm gejagd. CPU-Auslastung lag bei ständig nahezu 100%, ist ja auch nachvollziehbar. Ds Programm aber scheint "tot" zu sein. Wenn ich ein anderes Programm vor meins bringe und dann wieder schließe, ist mein ganzes Programm weiß. Das Problem sollte verständlich sein. Ein Kumpel von mir hat gesagt, ich müsse nach jeder Iteration der Konvertierung dem Programm die "Chance" geben, die Windows-Nachrichten abzuarbeiten. Ich weiß ungefähr, was er meint, nur habe ich von dem Thema keine Ahnung. Kann mir jemand darüber ein wenig erklären oder mir einen Link geben? Ich weiß auch nicht genau, wonach ich da im Internet suchen kann. Ein paar Stichworte würden schon genügen, damit ich weiß, wonach ich suchen kann. Die entsprechenden Funktionsnamen würden natürlich auch nicht schaden. :wink: |
Re: Hohe Auslastung - Programm hängt
Hi,
Wenn Du in einer for-Schleife jeweils am Ende nach der Bearbeitung, Application.DoEvents() aufrufst, sollte es gehen :) mfG mirage228 |
Re: Hohe Auslastung - Programm hängt
Danke! Genau das, was ich gesucht habe! :mrgreen:
|
Re: Hohe Auslastung - Programm hängt
Nur so: In was möchtest du den dein Bild Konvertieren?? Erscheint mir irgendwie nicht Sinnvoll, da .NET ja die meisten Dateiformate von Haus aus unterstützt!
|
Re: Hohe Auslastung - Programm hängt
Alternativ einfach den Algo für's konvertieren in einen eigenen Thread auslagern. Das ist wohl der beste Weg.
|
Re: Hohe Auslastung - Programm hängt
@Speedmaster:
Das Programm habe ich sozusagen für meine Webseite geschrieben. Dort sind mehrere hundert Bilder zu sehen. Mit dem Programm kann ich nun die von der Digicam geladenen Bilder direkt in der gewünschten Größe (inkl. Thumbnail) speichern. Dazu lade ich jeweils ein Bild, ändere die Größe und speichere es wieder. Also ich habe schon die .net-Methoden benuzt. @Alexander: Die Variante mit Application.DoEvents() reicht schon völlig aus. Das Programm ist eine Art Assistent und der letzte Schritt ist halt das Konvertieren. Es reicht also aus, wenn man den Mauszeiger bewegen kann und nicht das Gefühl hat, das Programm ist "tot". |
Re: Hohe Auslastung - Programm hängt
Zitat:
|
Re: Hohe Auslastung - Programm hängt
Ja klar, habe ich gemacht. Während der Konvertierung kann man in dem Programm nichts mehr machen. Einzig den Fortschritt kann man an einer ProgressBar ablesen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz