Zitat:
Unabhängig davon kann man natürlich auch die Priorität senken
Daran habe ich auch gedacht bzw. mir den Thread angeschaut wie er erstellt wird.
Aber selbst auf der niedrigsten Stufe bringt das nichts wenn die Schleife ohne unterbrechung läuft.
Man muss halt nur die richtige position finden an der man den Thread schlafen legt wenn auch nur eine millisekunde.
Code:
VisualizationRunning = true;
ThreadStart renderTs = new ThreadStart(this.RunRenderThread);
VizRenderThread = new Thread(renderTs);
VizRenderThread.Priority = ThreadPriority.AboveNormal; //< Hat keinen einfluss auf die auslastung der CPU
VizRenderThread.IsBackground = true;
VizRenderThread.Name = "VizRenderer";
VizRenderThread.Start();
geht!
Code:
if (VisualizationRunning)
{
using (Graphics g = Graphics.FromHwnd(
Handle))
{
// Fixed High CPU mistake
Thread.Sleep(1);
geht nicht!
Code:
if (VisualizationRunning)
{
// Fixed High CPU mistake
Thread.Sleep(1);
using (Graphics g = Graphics.FromHwnd(
Handle))
{
gruss