Multithreading - Richtig?

  • VB.NET

Es gibt 22 Antworten in diesem Thema. Der letzte Beitrag () ist von Artentus.

    Und noch das Thread.Sleep weglassen, denn dadurch gibt der Thread jedes Mal seine CPU-Zeitscheibe frei (CPU-yield). Das ist ineffizient, weil Kontextwechsel relativ teuer sind - der Thread schafft in einer Zeitscheibe nämlich deutlich mehr als eine Iteration der Schleife.

    Wenn irgendetwas "langsam" erscheinen soll (hier wohl die Anzeige), sollte man den Thread nur so lange wie nötig schlafen lassen (also weniger Iterationen der Schleife und dafür in größeren Schritten für denselben Effekt).
    Gruß
    hal2000
    ich wollte nur auf diesen Gesichtspunkt hinweisen, dass zu häufige Gui-Benachrichtigungen zT. irrwitzig Performance fressen.
    Bei so Threading gibts einige Gesichtspunkte, und dassis einer davon.
    In AsyncWorker - CodeProject habichmich darüber mal verbreitert, und da auch eine Lösung für eingestellt, wo Gui-Benachrichtigungen zwar entgegengenommen werden, aber einfach unterschlagen, wenn sie dichter als 300ms nacheinander erfolgen :P

    Aber diese ganze Choose ist doch ab 2012 veraltet, und man sollte glaub grundsätzlich gugge, dass man Threading mit den Async-Features gebacken bekommt, oder?
    Dieses Async-Zeugs verhält sich entweder wesentlich anders als herkömmliches Threading, oder ich bin zu blöd das anzuwenden. Bei mir hat sich der GUI-Thread beim Ausführen eines Tasks komplette schlafen gelegt, als würde ich gar keine Threads verwenden.