迭代它的對象,當我嘗試從System.Management命名空間,但使用ManagementObjectSearcher或ManagementObjectCollection藏品結果FileNotFoundException異常任何試圖獲得與幾個類中的某些系統信息拋出FileNotFoundException異常。ManagementObjectSearcher在foreach循環
下面我呈現有問題的代碼:嘗試從集合獲得下一個項目時
public static string GetProcessorID() {
var processorID = "";
var query = "SELECT ProcessorId FROM Win32_Processor";
var oManagementObjectSearcher = new ManagementObjectSearcher(query);
foreach (var oManagementObject in oManagementObjectSearcher.Get()) {
processorID = (string)oManagementObject["ProcessorId"];
break;
}
return processorID;
}
拋出異常在「的foreach」線。
據機上觀察的Windows XP Professional SP3,與Visual Studio 2008專業。我想這可以是我的CPU,這是英特爾雙核 - 在其他機器上具有類似的環境相同的程序完美的作品。這些機器之間的主要區別是CPU。
像MACADDRESS和系統驅動其他參數提供了同樣的問題,這表明它可能是相當的軟件問題(?WMI)
非常類似的問題在這裏說明 - >http://news.softpedia.com/news/XP-SP3-Win32-Processor-Class-Labels-Intel-Core-2-Duo-CPUs-Incorectly-90201.shtml但解決的辦法並沒有解決它。
任何想法?提前致謝。
Dawid
這沒什麼意義。當你的循環包含break語句時,你怎麼能從集合中獲得下一個項目? – 2012-02-03 02:53:29
沒錯。不是下一個項目,而是第一個項目。調試時,它停在'in'關鍵字上。所以我不能得到任何物品。 – dawid 2012-02-04 10:51:49
沒有解決您的問題,但無論如何:是否意識到代碼不太適合多核,超線程或多處理器的機器?所有這些將爲查詢生成多行。 – 2012-06-15 05:13:44