GUI friert nach einer gewissen Zeit ein, obwohl das Programm Hintergrund noch weiterläuft

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    GUI friert nach einer gewissen Zeit ein, obwohl das Programm Hintergrund noch weiterläuft

    Hallo zusammen,

    Hintergrund:
    Ich habe eine Windows Forms App (in VB.Net), die die Bewegungen eines Roboterarms steuert und überwacht. Dies passiert durch mehrere Threads (ca. 5-7) während der Laufzeit. Variablen, die von mehreren Threads verwendet werden, synchronisiere ich mit synclock. Ich baue ebenfalls 2 TCPIP-Verbindungen mit anderen Programmen/Rechnern auf. Leider kann ich keinen Code zur Verfügung stellen. Die GUI hat ein paar Labels, die ich regelmäßig mit Timern aktualisiere und ein paar Buttons, um z.B. eine txt-Datei anzuzeigen, in die während der Laufzeit geschrieben wurde oder um den Zustand einer booleschen Variable zu verändern. Die Threads verwende ich hauptsächlich um Module über USB/Ethernet einzulesen oder für TCPIP-Verbindungen.

    Problem:
    Die Anwendung läuft am Anfang für eine gewisse Zeit reibungslos (etwa 1h bis 3h). Danach friert die GUI ein, aber das Programm läuft im Hintergrund immer noch korrekt weiter. Der Roboter bewegt sich weiterhin korrekt und die Logdateien werden richtig befüllt. Die Label werden nicht aktualisiert und die Button funktionierten nicht mehr.
    Kleines Bauchgefühl: Die GUI friert gefühlt schneller ein, wenn Buttons gedrückt werden, als ohne.

    Ich wäre für jeden Ratschlag dankbar.
    @Unbekannt Willkommen im Forum. :thumbup:
    Da hast Du Dir leider ein sehr blödes Problem ausgesucht.
    Kannst Du eventuell einen rudimentären GUI-Code einstellen, ohne Euren internen Code zu veröffentlichen, damit wir eine Vorstellung vom Ablauf bekommen?
    Bei Thread-Aufrufen kannst Du ja zumindest einen sinnvollen Kommentar dazu schreiben.
    Wird von den Threads aus die GUI invoked?
    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!