我正在尝试使用c#扩展给定的代码,但是由于缺乏编程经验,我有点陷入困境。
使用Visual Studio社区,我试图通过控制台读取CPU核心温度。该代码使用开关/外壳来查找传感器特定名称的外壳,例如CPU Core#1和温度。对于每个CPU内核。拥有64个核心,这是相当不错的选择。我试图实现一个foreach情况,但是它不起作用。我也不知道如何在这里设置for循环。
那是有问题的代码:
if (s.SensorType == LibreHardwareMonitor.Hardware.SensorType.Temperature)
{
if (s.Value != null)
{
float curTemp = (float)s.Value;
switch (s.Name)
{
case "Core Average": //average temps
cpuTemp = curTemp.ToString();
Console.WriteLine(" ... ");
Console.WriteLine(" CPU AVG TEMP: " + cpuTemp);
Console.WriteLine(" ... ");
break;
case "CPU Core #": //Temps for CPU Core #1, CPU Core #2 ...
foreach (s.Name in LibreHardwareMonitor...? ) // <-- no clue what to do here
{
int i = 1;
cpuTemp = curTemp.ToString();
Console.WriteLine(" ... ");
Console.WriteLine(" CPU #" + i +" TEMP: " + cpuTemp);
Console.WriteLine(" ... ");
i++;
}
break;
}
}
}
我被困住了,不知道如何实现将所有CPU Core#1吐出到CPU Core#64临时。
这是完整的代码:
private void dataCheck(object StateObj)
{
string cpuTempA = "";
string cpuTemp = "";
string gpuTemp = "";
string gpuLoad = "";
string cpuLoad = "";
string dataUsed = "";
string fanUsed = "";
string cpuClock = "";
//;
StateObjClass State = (StateObjClass)StateObj;
// enumerating all the hardware
foreach (LibreHardwareMonitor.Hardware.IHardware hw in thisComputer.Hardware)
{
Console.WriteLine("HARDWARE: " + hw.HardwareType);
Console.ReadLine();
hw.Update();
// searching for all sensors and adding data to listbox
foreach (LibreHardwareMonitor.Hardware.ISensor s in hw.Sensors)
{
Console.WriteLine("NAME: " + s.Name + ", TYPE: " + s.SensorType + ", VALUE: " + s.Value);
Console.ReadLine();
if (s.SensorType == LibreHardwareMonitor.Hardware.SensorType.Temperature)
{
Console.WriteLine(" FOUND " + s.SensorType);
if (s.Value != null)
{
Console.WriteLine(" FOUND VALUE " + s.Value);
float curTemp = (float)s.Value;
switch (s.Name)
{
case "Core Average":
Console.WriteLine(" FOUND NAME " + s.Name);
cpuTempA = curTemp.ToString();
Console.WriteLine(" ... ");
Console.WriteLine(" CPU AVG TEMP: " + cpuTempA);
Console.WriteLine(" ... ");
break;
case "CPU Core #": //CPU Core #1, CPU Core #2 ...
foreach (s.Name in LibreHardwareMonitor...? )
{
int i = 1;
cpuTemp = curTemp.ToString();
Console.WriteLine(" ... ");
Console.WriteLine(" CPU #" + i +" TEMP: " + cpuTemp);
Console.WriteLine(" ... ");
i++;
}
break;
}
}
}
if (s.SensorType == LibreHardwareMonitor.Hardware.SensorType.Clock)
{
Console.WriteLine(" FOUND " + s.SensorType);
if (s.Value != null)
{
Console.WriteLine(" FOUND VALUE " + s.Value);
float curClock = (float)s.Value;
switch (s.Name)
{
case "CPU Core #4":
Console.WriteLine(" FOUND NAME " + s.Name);
cpuClock = curClock.ToString();
Console.WriteLine(" ... ");
Console.WriteLine(" CPU CLOCK: " + cpuClock);
Console.WriteLine(" ... ");
break;
}
}
}
}
}
}
}
参考方案
拆分字符串并将#
之后的部分转换为整数
if (s.Name.Contains("#")) {
string core_id_str = s.Name.Split('#')[1]; // gets second part of split
int core_id = System.Convert.ToInt32(core_id_str); // convert to integer
// do your magic
}
当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…
改造正在返回一个空的响应主体 - java我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…
每个文件合并后添加换行 - python我有很多类似以下内容的JSON文件:例如。1.json{"name": "one", "description": "testDescription...", "comment": ""} test.json{"name"…
Div单击与单选按钮相同吗? - php有没有一种方法可以使div上的click事件与表单环境中的单选按钮相同?我只希望下面的div提交值,单选按钮很丑代码输出如下:<input id="radio-2011-06-08" value="2011-06-08" type="radio" name="radio_date…
使用Json.NET反序列化复杂对象 - c#我需要反序列化从grogle maps api返回的json:{ "destination_addresses": [ "Via Medaglie D'Oro, 10, 47121 Forlì FC, Italia", "Via Torino, 20123 Milano, Italia",…