/// <summary>
 /// PerformanceCounterの作成をバックグラウンドで処理しておく。
 /// </summary>
 /// <param name="delay">遅延時間 ms</param>
 /// <remarks> PerformanceCounterの作成は初回のみ数秒かかる。</remarks>
 public static void PreLoad(int delay = 0)
 {
     System.Threading.Tasks.Task.Factory.StartNew(() =>
     {
         System.Threading.Thread.Sleep(delay);
         CounterFactory.Create(CounterList.Processor);
     });
 }
 /// <summary>
 /// constructor
 /// </summary>
 public NetworkCounter(string insName)
 {
     InsName         = insName;
     receiveCounter  = CounterFactory.Create(CounterList.Network_Recive, insName);
     sentCounter     = CounterFactory.Create(CounterList.Network_Sent, insName);
     transferCounter = CounterFactory.Create(CounterList.Network_Transfer, insName);
     Receive(); //1回目のNextValueは0が返されるのでここで実行する。
     Sent();
     Transfer();
 }
 /// <summary>
 /// constructor
 /// </summary>
 public HDDCounter(string insName)
 {
     InsName         = insName;
     readCounter     = CounterFactory.Create(CounterList.HDD_Read, insName);
     writeCounter    = CounterFactory.Create(CounterList.HDD_Write, insName);
     transferCounter = CounterFactory.Create(CounterList.HDD_Transfer, insName);
     Read(); //1回目のNextValueは0が返されるのでここで実行する。
     Write();
     Transfer();
 }
            /// <summary>
            /// インスタンス名からカウンター作成
            /// </summary>
            public bool Create(int pid, string insname)
            {
                PID     = pid;
                InsName = insname;
                IsAlive = true;

                PrcCpuCounter = CounterFactory.Create(CounterList.ProcessCPU, InsName);
                Usage();  //1回目のNextValueは0が返されるのでここで実行する。
                return(IsAlive);
            }
 /// <summary>
 /// constructor
 /// </summary>
 public ProcessorCounter()
 {
     Processor = CounterFactory.Create(CounterList.Processor);
     Usage();     //1回目のNextValueは0が返されるのでここで実行する。
 }