Autor Beitrag
Marc Dirk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41



BeitragVerfasst: Mo 19.04.10 15:59 
Hallo,

wie kann ich dafür sorgen, dass mein Programm auch weiter seinen Dienst tut wenn ich während seiner Berechnungen bzw. Datenbankabgleiche im Internet surfen möchte?
Derzeit stoppt das Programm sobald es nicht mehr das aktive Fenster hat und es läßt sich auch nicht mehr dazu bewegen weiter zu machen, wenn meine Form wieder aktiv wird.
Ich muß dann das Ganze von vorne starten.

Danke für Eure hilfreichen Tipps!

Gruß

Marc
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mo 19.04.10 17:01 
Hu? Du solltest unbedingt auf ein Multitasking-Betriebssystem umsteigen :D :lol:

Okay, Scherz bei Seite....

Ich vermute dein Programm läuft noch weiter, allerdings wird die Oberfläche nicht neu gezeichnet, wenn du in deinem Programm eine rechenintensive Operation wie zum Beispiel Datenbankabgleich machst.

Um dein Fenster deines Programms weiterhin neu zu zeichnen gibt es zwei Möglichkeiten:

1) Während der Berechnung Applications.DoEvents() aufrufen.
2) Die intensive Berechnung in einen eignen Thread auslagern.

Also erste Methode macht man "eigentlich" nur wenn man davon ausgeht, dass es "eigentlich" schnell geht und man sich nicht mehr Gedanken machen will/kann. Die zweite Lösung ist die gängige. Dabei wird ein neuer Thread innerhalb des Prozesses angelegt der dann genau diese intensiven Berechnungen (im Hintergrund) macht. Siehe dazu BackgroundWorker und
Thread.

Wenn ich mit meinem Ansatz falsch liege, stelle bitte mehr Informationen zu der Problematik zur Verfügung. Danke.

Gruß