Re: Begrenzung der Nutzung der CPU
- From: Alexander Mueller <millerax@xxxxxxxxxxx>
- Date: Thu, 15 Nov 2007 23:42:20 +0100
Thorsten Doerfler schrieb:
Mark Riemann (castle) schrieb:
3) Mir ist auch zu Ohren gekommen, dass das Auslagern rechenintensiver Schleifen in einen eigenen Thread das Problem beheben kann. Mir ist nur nicht klar, warum das so ist/so sein sollte.
Ein klares Jein! Wenn Du eine Schleife in einem separaten Thread
laufen lässt, ohne Pausen zwischendurch, lastet sie den Prozessor auch
voll aus. Beheben lässt sich damit nur, dass während dessen Deine
Anwendung "einfriert". VB arbeitet mit nur einem Thread für die
Oberfläche der Anwendung und den Code. Wenn eine rechenintensive
Schleife am Werke ist, reagiert die Oberfläche nicht mehr auf
Fensternachrichten, solange man nicht DoEvents einstreut, womit man
explizit Gelegenheit gibt, wartende Fensternachrichten zu verarbeiten.
Bei einer Schleife im separaten Thread, bräuchte man dieses DoEvents
nicht mehr. Das System verteilt die Rechenzeit automatisch zwischen
den UI Thread und dem Schleifen Thread. Theoretisch gesprochen. Der
UI Thread wird also nicht mehr blockiert, jedoch ändert sich nichts an
der CPU Auslastung.
Man kann dem Worker-Thread aber schon eine niedrige Priorität geben, was
die CPU-Last senken würde, für den Fall, dass er mit anderen Threads u.v.a. Prozessen konkurriert.
Sicheres Multithreading ist halt nicht eben trivial in VB.
MfG,
Alex
.
- References:
- Begrenzung der Nutzung der CPU
- From: Mark Riemann
- Re: Begrenzung der Nutzung der CPU
- From: Thorsten Doerfler
- Re: Begrenzung der Nutzung der CPU
- From: Mark Riemann (castle)
- Re: Begrenzung der Nutzung der CPU
- From: Thorsten Doerfler
- Begrenzung der Nutzung der CPU
- Prev by Date: Re: Begrenzung der Nutzung der CPU
- Next by Date: Option explicit funktioniert nicht mehr!!
- Previous by thread: Re: Begrenzung der Nutzung der CPU
- Next by thread: Re: Begrenzung der Nutzung der CPU
- Index(es):
Relevant Pages
|