我想用C#中基于计时器的while循环替换基于计数器的while循环。
示例:
while(count < 100000)
{
//do something
}
至
while(timer < X seconds)
{
//do something
}
对于这个System.Timers
和Threading.Timers
,我在C# .NET中有两种类型的计时器。我不想在计时器上增加额外的时间消耗或线程问题。
发布于 2013-07-02 06:34:48
使用如下结构:
Timer r = new System.Timers.Timer(timeout_in_ms);
r.Elapsed += new ElapsedEventHandler(timer_Elapsed);
r.Enabled = true;
running = true;
while (running) {
// do stuff
}
r.Enabled = false;
void timer_Elapsed(object sender, ElapsedEventArgs e)
{
running = false;
}
发布于 2013-07-02 06:33:13
使用秒表类怎么样?
using System.Diagnostics;
//...
Stopwatch timer = new Stopwatch();
timer.Start();
while(timer.Elapsed.TotalSeconds < Xseconds)
{
// do something
}
timer.Stop();
发布于 2013-07-02 06:33:30
你可以使用Stopwatch
类来代替它们,比如;
提供了一组方法和属性,您可以使用这些方法和属性准确地测量运行时间。
Stopwatch sw = new Stopwatch();
sw.Start();
while (sw.Elapsed < TimeSpan.FromSeconds(X seconds))
{
//do something
}
返回表示指定秒数的TimeSpan,其中的规范精确到最接近的毫秒。
https://stackoverflow.com/questions/17418820
复制