Hallo Tsuyo,
ich weiß zwar nicht, ob ich da den richtigen Ansatz habe, aber auf jeden Fall kann es helfen, wenn man sowas vermeidet:
// nicht so
while(nothingToDo)
continue;
besser ist dabei sowas zu machen:
// besser so
while(nothingToDo)
System.Threading.Thread.Sleep(0);
Ich kenne zwar deinen Code nicht, aber vielleicht hilft die dieser Ansatz schon.
Wenn ich nur
continue verwende, dann läuft der Prozess eventuell mit voller Leistung und versucht so schnell er kann (und so oft wie möglich), diese Schleife zu durchlaufen.
Manmal verwendet man
System.Threading.Thread.Sleep um den Thread warten zu lassen und dann wäre der Wert sicher größer als 0.
Falls man aber nur dem System singnalisieren möchte, dass jetzt
erstmal die anderen Threads weitermachen können (weil er ja gerade nicht so viel zu tun hat), dann ist der Wert 0 entscheidend. Die Pause begrenzt sich also auf die laufenden Prozesse im System und so kann eventuell unnütz verbrauchte Leistung für diesen Prozess oder Thread mindern. Besonders bei Schleifen ;)