我的程序每x秒显示一次GPU视频卡的温度。 我想每次都会显示最低温度和最高温度。
例如,温度为:49c 然后它变为51然后再变为45然后再变为49.
所以最大值是51最小值是45。 如果温度升高到51以上,那么最大值将会改变。 并且最低限度相同。
private void timer_Tick(object sender, EventArgs e)
{
if (textBox3.Text == "")
{
timer.Stop();
MessageBox.Show("אנא הכנס נתונים בתיבות הטקסט מצד שמאל כדי להמשיך");
}
else
{
timer.Start();
Computer computer = new Computer();
computer.Open();
computer.GPUEnabled = true;
foreach (var hardwareItem in computer.Hardware)
{
if (hardwareItem.HardwareType == HardwareType.GpuNvidia)
{
foreach (var sensor in hardwareItem.Sensors)
{
if (sensor.SensorType == SensorType.Temperature)
{
sensor.Hardware.Update();
//textBox1.Text = String.Format("The current temperature is {0}", sensor.Value);
temperature_label.Text = sensor.Value.ToString() + "c";
label8.Text = sensor.Value.ToString() + "c"; // to save the last maximum temperature to a external variable and then show it in label8 same for the minimum temperature \\
label8.Visible = true;
int t = temperature_label.Text.Length;
if (t > 3)
{
temperature_label.Location = new Point(238, 200);
}
timer.Interval = 1000;
if (sensor.Value > float.Parse(textbox3_value))
{
Logger.Write("The current temperature is ===> " + sensor.Value);
button1.Enabled = true;
// temperature_label.ForeColor = Color. // to check wich colors to use blue and red regular state and in emergency when its over 90c ?! what colors for each label ?
}
this.Select();
}
}
}
}
}
}
我有一个计时器刻度事件,我更新温度。 在label8中我想显示最大值。 现在就是它实时显示温度的方式。
答案 0 :(得分:1)
只需添加两个变量即可存储最高和最低温度:
double minTemp = Double.MaxValue,maxTemp = Double.MinValue;
并且:
double value = Convert.ToDouble(sensor.Value);
if(value < minTemp) minTemp = value;
else if(value > maxTemp) maxTemp = value;
lblMin.Text = minTemp.ToString() + "c";
lblMax.Text = maxTemp.ToString() + "c";
答案 1 :(得分:0)
您可能需要三个标签和三个变量:
// Example
tempCurrent = sensor.Value;
if (tempMax < tempCurrent)
tempMax = tempCurrent;
if (tempMin > tempCurrent)
tempMin = tempCurrent;
lblMax.Text = tempMax + "c";
lblMin.Text = tempMin + "c";
lblCurrent.Text = tempCurrent + "c";