2012-03-06 12 views
0

何らかの手法を使用してシステムアップタイムを取得する必要があります。 StackOverflowの誰かから推薦された私は、TimeSpanのシステムアップ時間を得るためにパフォーマンスカウンターを使用しました。PerformanceCounterが例外をスローする

  try 
      { 
       var uptime = new PerformanceCounter("System", "System Up Time"); 
       uptime.NextValue(); 
       return TimeSpan.FromSeconds(uptime.NextValue()); 
      } 
      catch (Exception) 
      { 

      } 

これは問題なく私のPCで完全に動作します。しかし、問題は私の友人のコンピュータで発生します。彼のPCで、次の行を実行すると例外がスローされます。

var uptime = new PerformanceCounter("System", "System Up Time"); 

例外は"Input String was not in Correct format"であった。

+0

地域設定問題? – Guillaume

+1

いいえ、PerformanceCounterはFormatExceptionを生成しません。 try/catchキーワードを削除することを検討してください。 –

+0

@HansPassant、私もこの例外が見つかるまで、try/catchを削除しようとしましたが、アプリケーションがフリーズして「応答していません」というメッセージが表示されます.... – jchoudhury

答えて

1

PerformanceCounterは、許可などによって動作が異なる場合があります。これに関する情報は、MSDNを参照してください。

Windows XPでは、ページングファイルが設定されていないと、いくつかのパフォーマンスカウンタが使用できなくなります(詳細はhttp://support.microsoft.com/kb/884558/en-usを参照)。無関係

何か:あなたのような

「嚥下」の例外空catchブロックをどうBAD練習です!

+0

6台以上のコンピュータを並列に試しました。この奇妙な例外、私はなぜか分からない。 – jchoudhury

+0

@jchoudhuryあなたは私の答えを読んでリンクをたどりましたか? – Yahia

+0

はい...私はリンクに従っており、許可についてはすべて言います。私は、私の友人のPCは、コードのための不可欠なアクセス許可を持っていないと思う... – jchoudhury

関連する問題