0
- 我讀過所有相關的答案,這裏都沒有幫助。
- 另請注意:如果我在VS 2012調試器中運行該程序,它就像一個魅力。 但是,如果我運行時未經調試(按Ctrl F5)或在VS 2012 ID之外運行.exe,則會引發異常。
- 我turened關閉防火牆
- 我運行exe文件管理
- 我重新啓動WMI服務。
相同..ManagementObjectSearcher Get()方法:「內存不足以繼續執行程序。」
這裏是代碼。通過.Get()方法調用拋出異常
注意:調試屏幕是而不是運行調試模式,它是運行可執行文件並在崩潰後連接調試器。
http://screencast.com/t/nfvrfz2Hq6Q
同樣,如果我在調試運行程序越跑起來的魅力。
internal static class Program
{
private static void Main(string[] args)
{
var objSearcher = new ManagementObjectSearcher(
"SELECT * FROM Win32_SoundDevice");
var objCollection = objSearcher.Get();
foreach (var obj in objCollection)
{
foreach (var property in obj.Properties)
{
Debug.WriteLine("{0}:{1}", property.Name, property.Value);
}
}
}
}
只是爲了反饋:任何人都可以複製嗎? Thx –
如果* real *代碼重複運行此查詢,則OOM是此代碼的預期結果。這需要一段時間。否則,使用實現IDisposable的類的典型結果不會使用Dispose()方法,也不會使垃圾收集器運行得足以在您之後清理。然而,這些都是非常相關的細節,你沒有解決你的問題,所以這不是一個解釋。 –
嗨漢斯,thx的評論。代碼運行一次。這裏真的很可怕,在VS IDE調試模式下,它運行良好並且發現了2個設備,但是運行可執行文件(或者在IDE中使用ctrl + f5運行)會立即拋出內存不足。 :-(我沒有希望了 –