Windows Forms Anwendung hängt manchmal beim starten.

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von FredM.

    Windows Forms Anwendung hängt manchmal beim starten.

    Hallo Zusammen,

    ich habe ein seltsames Problem das sich leider nicht besser beschreiben lässt, und ich weiß auch nicht recht wie ich den Fehler herausfinden könnte.

    Mein Programm besteht aus einem SplashScreen und einer MainForm und liegt bei uns in der Firma auf einem Netzlaufwerk. Etwa bei jedem zehnten Start hängt das Programm beim SplashScreen und läuft nicht weiter.
    Das seltsame ist, selbst das Programm über den Taskmanager abschießen bringt nichts. Der Prozess verschwindet nicht und es geht ca. 2 Minuten bis der Prozess endlich nicht mehr in der Liste ist.

    Wenn man das Programm nicht abschießt, kommt irgendwann die Windows-Meldung "Das Programm reagiert nicht mehr", es kommt leider keine Exception seitens des Programmes, ich habe auch um die gesamte Startprozedur mal ein Try,Catch Block gehängt um evtl. Fehler abzufangen, aber da kommt auch nichts.

    Seltsamerweise hab ich das Problem nur wenn das Programm auf dem Netzlaufwerk liegt, lokal konnte ich dieses Phänomen noch nie beobachten. Hat irgendjemand eine Idee wo man ansetzen könnte. Timingproblem?

    Auch interessant: Ich habe im Mainform Load Event ganz am Anfang eine MessageBox platziert, diese wird auch wenn das Programm sich aufhängt noch angesprochen. d.h. die Startprozedur läuft vollkommen durch, das Problem scheint erst im Load der Mainform aufzutreten.

    Was passiert beim Programm-Start?
    - Es wird eine Excel-Datei eingelesen.
    - Controls werden beschriftet
    - Objekte instanziert
    "Es ist absolut möglich, dass jenseits der Wahrnehmung unserer Sinne ungeahnte Welten verborgen sind." — Albert Einstein
    "Wenn die Macht der Liebe die Liebe zur Macht übersteigt, erst dann wird die Welt endlich wissen, was Frieden heißt." — Jimi Hendrix

    Das ist sehr individuell.
    Mach Logausschriften rein:

    VB.NET-Quellcode

    1. IO.File.AppendAllText(PFAD_DER_LOG_DATEI, "anzuhängender Text" & Environment.NewLine)

    Nimm mal testweise das Excel-Auslesen raus.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hey Super Idee mit der StartLog :D

    Ich hab mich langsam der Stelle genährt. Der letzte eintrag in der Logdatei ist HS5, also scheint das Problem mit meinem FileSystemWatcher Objekt zusammen zu hängen, was vielleicht auch erklärt wieso das Problem nur auf Netzwerklaufwerken besteht.

    VB.NET-Quellcode

    1. IO.File.AppendAllText(StartLog, "HS 5" & Environment.NewLine)
    2. With EQuote.Application.Settings.Paths
    3. db_observer = New System.IO.FileSystemWatcher(.ExePath(False)) ' & "" & .Data
    4. db_observer.EnableRaisingEvents = True
    5. db_observer.IncludeSubdirectories = True
    6. db_observer.NotifyFilter = IO.NotifyFilters.Attributes
    7. End With
    8. IO.File.AppendAllText(StartLog, "HS 6" & Environment.NewLine)
    "Es ist absolut möglich, dass jenseits der Wahrnehmung unserer Sinne ungeahnte Welten verborgen sind." — Albert Einstein
    "Wenn die Macht der Liebe die Liebe zur Macht übersteigt, erst dann wird die Welt endlich wissen, was Frieden heißt." — Jimi Hendrix

    @FredM:: Hast Du juristisch und administrativ das Recht, Netzwerklaufwerke zu überwachen?
    Teste ggf. vorher ab, ob es sich um ein Netzwerklaufwerk handelt und überwache es dann nicht.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Naja die Funktion war eh nur eine spielerei, und zwar meldet das Programm dem Benutzer wenn etwas an der ExcelDatei geändert wurde.
    Ich brauch die Funktion nicht unbedingt, deswegen habe ich sie einfach rausgeschmissen.

    Mit den Rechten kann es ja eigenlich nicht zu tun haben, da das Programm ja in 9 von 10 Fällen startet. Es scheint wohl irgendwie ein Timing Problem zu sein. Vielleicht bekommt der Watcher manchmal keinen Zugriff auf manche Dateien und hängt dann etc. ist auch egal. Jetzt gehts :D
    "Es ist absolut möglich, dass jenseits der Wahrnehmung unserer Sinne ungeahnte Welten verborgen sind." — Albert Einstein
    "Wenn die Macht der Liebe die Liebe zur Macht übersteigt, erst dann wird die Welt endlich wissen, was Frieden heißt." — Jimi Hendrix