2016-03-31 9 views
-3

C#とXamarinプラットフォームを使った乱数生成プログラムです。私はターゲットとして特定の番号を入れて、PCはランダムに番号を取らなければならず、それがターゲット番号を見つけたら、その番号を見つけるための試行回数が私に与えられました。私はタイマーを入れたいので、番号を見つけるのにどれくらいの時間がかかったのか分かります。そしてそれが見つかると、タイマーは録音を停止します。それはどのようにすることができますか?C#の時間をどのように記録できますか?

+5

[StopWatch](https://msdn.microsoft.com/de-de/library/system.diagno) stics.stopwatch(v = vs.110).aspx)。これはタイムスパンを測定することができます。 –

答えて

0

あなたは持続時間を記録するためにストップウォッチクラスを使用することができます。

// Create new stopwatch. 
Stopwatch stopwatch = new Stopwatch(); 

// Begin timing. 
stopwatch.Start(); 

// Do something. 
for (int i = 0; i < 1000; i++) 
{ 
    Thread.Sleep(1); 
} 

// Stop timing. 
stopwatch.Stop(); 

// Write result. 
Console.WriteLine("Time elapsed: {0}", stopwatch.Elapsed); 
+0

これで試してみるよ。このタイマーは、プログラムがターゲット番号を検出したときに停止しますか?申し訳ありませんが、私はまだ初心者です。 – Ayman

+0

@Ayman 'Stopwatch.Stop()'を呼び出すと 'Stopwatch'が停止するので、ターゲット番号を見つけたら' Stop() 'を呼び出すと期待通りになります結果。 – dylansturg

+0

@Dylan S、番号を見つけたら自動的に停止して、それを見つけるのに何時間もかかるかもしれません。 – Ayman

0

あなたは、このためのタイマーを必要としません。ただ、これは、経過ミリ秒

var startTime = Environment.TickCount; 
// do some work. 
var timeTaken =Environment.TickCount-startTime; 
0
  1. は単位あなたが

    をしたいあなたの機能
  2. ログインあなた秒で機能
  3. 出力結果または任意の後の終了時間前に開始時間をログ取得しますか

    // 1) Log the start time before your function 
        long startTime = DateTime.Now.Ticks; 
    
        // 2) Log the finish time after your function 
        double secondsElapsed = new TimeSpan(DateTime.Now.Ticks - startTime).TotalSeconds; 
    
        // 3) Output result in seconds or whichever units you want 
        Debug.WriteLine($"Function took: {secondsElapsed}"); 
    
+0

ようこそStackOverflowへ!私はあなたの答えにコメントしたかった。あなたは間違っていませんが、それは最良の答えではありません。 'DateTime'構造体を使用するだけでは、操作タイミングを計算するのに十分正確ではありません。 – Cameron

+0

もっと正確なのは何ですか? – epenabella

+0

'System.Diagnostics'ネームスペースの' Stopwatch'クラスが推奨クラスです。 – Cameron