0

実際の空きメモリを取得しようとしています。パフォーマンス カウンターを使用するのが最も簡単なソリューションのようです。私のコーディング マシンではまったく問題なく動作しますが、残念ながらターゲット コンピュータで例外が発生します。Windows XP と .NET 3.5 を使用しています。

コード:

namespace TestConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            PerformanceCounter ramCounter = new PerformanceCounter("Memory", "Available Bytes");
        }
    }
}

例外:

Unhandled Exception: System.InvalidOperationException: Category does not exist.
   at System.Diagnostics.PerformanceCounterLib.CounterExists(String machine, String category, String counter)
   at System.Diagnostics.PerformanceCounter.Initialize()
   at System.Diagnostics.PerformanceCounter..ctor(String categoryName, String counterName, String instanceName, Boolean
readOnly)
   at System.Diagnostics.PerformanceCounter..ctor(String categoryName, String counterName)
   at TestConsole.Program.Main(String[] args) in D:\Projektarbeit\Bachelorarbeit\VS2010\Projekte\DiagStationControllerTe
stConsoleV1\TestConsole\Program.cs:line 15
4

2 に答える 2

0

例外メッセージはすべてを示しています:

カテゴリが存在しません。

平均カテゴリ「メモリ」は存在しません。

于 2012-06-18T08:44:47.947 に答える
0

根本的な問題を解決できませんでしたが、PerformanceCounter ではなく API 呼び出しを使用する回避策があります。http://www.codeproject.com/Articles/1285/Calling-API-functions-using-Cを参照してください。

于 2012-06-25T13:52:04.530 に答える