UI-Thread hängt sich sporadisch auf

  • VB.NET
  • .NET (FX) 4.0

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

    UI-Thread hängt sich sporadisch auf

    Hallo,

    habe mir aufgrund dessen, dass der Backgroundworker irgendwie keine richtigen Threads erstellt bzw. sie meiner Meinung nach Poolt eine kleine eigene Klasse gebaut, die den BackgroundWorker ersetzen soll. (Ich liebe es, wenn ich mich nicht um das sync. von Threads oder ähnliches kümmern muss!) Zusätzlich noch eine "Manager" Klasse / Scheduler für die Tasks (ein bisschen wie ein Timer). Leider habe ich immer folgendes Problem:

    Ich erstelle viele hundert Test-Threads die nichts anderes machen wie bis 100 zu zählen und jeden Schritt an die Oberfläche melden. Manchmal ist es so, dass sich der UI-Thread aufhängt? 100% CPU Last und er lässt sich nicht mehr debuggen? Irgendwie komisch für mich.... ;(

    Hier der Code für die "Task" Klasse:
    pastebin.com/QjFvwC38

    Hier der Code für die "TaskManager" Klasse (Scheduler):
    pastebin.com/swNhMpuu


    Zusätzlich verstehe ich nicht, warum .NET so extreme CPU last bei Threads verursacht. In .NET mit 500 Threads und UI Updates ca. 30% load. Mit MFC habe ich das gleiche probiert. 500 Threads und UI Updates ca. 00% Load (also dann kleiner 1%). Beides waren Release-Builds und außerhalb der IDE gestartet.... Managed Code, ja... aber so ein Unterschied?


    Viele Grüße


    Edit: Hinweis: Ich glaube, dass der UI-Thread sich verabschiedet liegt irgendwie, dass ich den Scheduler auch in einem Thread laufen lasse, der die anderen Threads startet. Falls jemand Zeit hätte, were es ja nett wenn er mal ein kleinen Blick auf das bisschen Code werden könnte.
    vermutlich liegt es an den UI Updates, die darfst du natürlich nicht zu oft aufrufen...
    Der Unterschied zwischen .net und MFC kann in allem möglichen liegen. Dazu müsste man mehr Infos haben...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---