计时器上的经过时间?

30

我有一段非常简单的代码用于测试代理服务器的响应,我想能够启动计时器并停止它,以获取发生这些事件所花费的时间。然而,我不认为下面的代码是我要找的。

var proxyStopWatch = new Timer();
proxyStopWatch.Start();

string[] splitProxy = ProxyList[i].Split('|');
string testResults = HTMLProcessor.HTMLProcessing.HTMLResults("http://www.google.com", splitProxy[0], Convert.ToInt32(splitProxy[1]), true, out testResults);

ProxyListResults.Add(ProxyList+"|"+proxyStopWatch.Interval.ToString());
proxyStopWatch.Stop();

6
不要使用Stopwatch类。 - Hans Passant
3个回答

67

如果只需要获取经过的时间,Stopwatch 类可能更容易使用。

Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();

// do stuff

stopWatch.Stop();
long duration = stopWatch.ElapsedMilliseconds;

14

以下是使用 System.Diagnostics 命名空间中的计时器的示例:

var stopWatch = new Stopwatch();
stopWatch.Start();

Thread.Sleep(10000);
stopWatch.Stop();

// Get the elapsed time as a TimeSpan value.
var ts = stopWatch.Elapsed;

// Format and display the TimeSpan value.
string elapsedTime = $"{ts.Hours}:{ts.Minutes}:{ts.Seconds}.{ts.Milliseconds / 10}";
    
Console.WriteLine("RunTime " + elapsedTime);

1

你说得对。我不认为那是你要找的东西。你可以简单地这样做:

var start = DateTime.Now;
string[] splitProxy = ProxyList[i].Split('|');

string testResults 
     = HTMLProcessor.HTMLProcessing.HTMLResults("http://www.google.com", 
     splitProxy[0], Convert.ToInt32(splitProxy[1]), true, out testResults);
ProxyListResults.Add(ProxyList+"|"+proxyStopWatch.Interval.ToString());

Console.WriteLine("Time elapsed in milliseconds was: " + 
    (DateTime.Now - start).TotalMilliseconds);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接