Re: Begrenzung der Nutzung der CPU

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



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
.



Relevant Pages

  • Re: einfaches Problem beim Synchronisieren
    ... Verbraucherthread _bedient_ werden und dann die ... auf dem Bildschirm erscheinen. ... Eventuell kann man die while Schleifen mit einer if Abfrage ersetzen. ... Es sieht für mich so aus als ob der Thread in der run Methode auf der Schleife stehenbleibt und einfach nur die CPU als Elektro-Ofen verwendet wird... ...
    (de.comp.lang.java)
  • Re: geschlossener Kettenschutz
    ... Man hört das Schleifen bei langsamer Fahrt, ... Prev by Date: ... Next by Date: ... Previous by thread: ...
    (de.rec.fahrrad)
  • Re: Process und Ausgabestrom
    ... Entweder wird alles erst nach Processende geschrieben, ... Kombination von DoEvents mit Sleep. ... Previous by thread: ...
    (microsoft.public.de.german.entwickler.dotnet.vb)
  • Re: DoEvents
    ... Wie ist es also bei nur einem Thread? ... Wenn Multithreading unbedingt vermieden werden soll, ... bleibt Dir nur DoEvents, ... Abläufe auch für Einsteiger überschaubar sein und ich ...
    (microsoft.public.de.german.entwickler.dotnet.vb)
  • Re: Suche IMAP-client =?UTF-8?B?ZsO8cg==?= Linux
    ... Reiner Steib wrote: ... das möglicherweise beheben (Passworte usw. natürlich unkenntlich ... sehe passt sehr gut zu dem folgenden Thread: ...
    (de.comp.os.unix.apps.misc)