Laden...

Zyklische Abfrage von Queue.Count verursacht hohe CPU-Last

Erstellt von Foermchen82 vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.309 Views
F
Foermchen82 Themenstarter:in
101 Beiträge seit 2005
vor 12 Jahren
Zyklische Abfrage von Queue.Count verursacht hohe CPU-Last

Hallo zusammen,

ich habe ein programm, welches mittels eines Threads ständig auf eine Queue zugreift.
Queue.Dequeue liefer eine Exeption wenn nichts drinn ist. Also wollte ich vorher mit Queue.Count prüfen.
Mein Thread läuft alle 5 sekunden.

Jetzt habe ich aber das problem, dass mein Programm mit 50% CPU läuft. kommentiere ich Queue.Count aus und verwernde stattdessen Queue.Dequeue mit try/Catch drum herum läuft das Programm nur noch mit 1%.

Kann mir das einer erklären??

Danke im voraus!

3.430 Beiträge seit 2007
vor 12 Jahren

Hallo Foermchen82,

dann hast du vermutlich eine Endlosschleife eingebaut.
Ein Core läuft dann also auf 100%

Guck dir mal die Queue von Herbivore an: SyncQueue <T> - Eine praktische Job-Queue

Gruß
Michael

F
Foermchen82 Themenstarter:in
101 Beiträge seit 2005
vor 12 Jahren

Hast recht. Oh man wie peinlich!

Einmal hatte ich Sleep einkommentiert und einmal nicht

1.130 Beiträge seit 2007
vor 12 Jahren

Sleep

Polling sollte man vermeiden -> WaitOne &co

Du solltest dir wirklich den Link von michlG angucken!!

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!