Autor Beitrag
pommes-schranke
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Sa 27.08.11 16:47 
Hallo,

ich weiß nicht ob das ein .NET Problem oder eher ein allgemeines Thema ist.
Ich möchte in meiner C#-Anwendung zu Beginn mehrere Dateien (.ini und andere) laden, ohne dass ein Button geklickt werden muss.
Da sich diese auf einem FTP-Server befinden zu dem sich das Programm erst verbinden muss, kann der Ladevorgang mehrere Sekunden dauern.

Ich habe den Code dann in den Form1_Load(...)-Bereich geschrieben.
Funktioniert ja soweit alles aber mein Problem ist jetzt, dass es mir die Form1 erst anzeigt, wenn der Ladevorgang der Dateien (alles was in Form1_Load steht) komplett abgeschlossen ist.
Das ist ja nicht unbedingt schön wenn das Programm erst mehrere Sekunden nach dem starten angezeigt wird.
Außerdem weiß man jetzt nicht, ob man das Programm wirklich gestartet hat.

Mein Wunsch ist es, dass die Form1 sofort angezeigt wird mit dem Hinweis "Daten werden geladen." oder so was in der Richtung.
Ich habe dazu auch schon eine weitere Funktion angelegt in welcher der ganze Code steht. Diese Funktion rufe ich dann aus der Form1_Load auf.
Das Problem beleibt. Die Form wird erst nach mehreren Sekunden angezeigt.

Hat da jemand einen Lösungsansatz für mich?
gfoidl
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 157
Erhaltene Danke: 19

Win XP
C#, Fortran 95 - Visual Studio
BeitragVerfasst: Sa 27.08.11 17:31 
Hallo,

siehe [FAQ] Warum blockiert mein GUI?, darin ist beschrieben wie du das lösen kannst.


mfG Gü

_________________
Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 27.08.11 17:36 
Hallo und :welcome:

die üblichen Lösungen dafür sind das Anzeigen eines "Splash Screen" bzw. Auslagerung des längerdauernden Codes in einen Thread (bzw. BackgroundWorker).

Einige Threads zum Thema "Splash Screen" habe ich mal rausgesucht:
Tutorial für Splash Screen gesucht?
Splashscreen aber wie ?
SplashForm - wie?
Dort sind auch weitere Links zu externen Quellen, wie CodeProject oder myCSharp angegeben.
Bei letzterem gibt es auch konkrete "Splash Screen"-Implementierungen, z.B.
Splashscreener
SplashScreen-Komponente (noch eine ;-P)
Yet another SplashScreenHelper

Ich hoffe, das hilft dir ersteinmal weiter...
Wenn du konkrete Rückfragen hast, darfst du diese gerne hier stellen.