我如何睡眠一定的毫秒数?

时间:2018-09-23 21:12:28

标签: c# timespan thread-sleep

我到处搜索,如果听起来很荒谬,我感到困惑,但是我无法在任何地方找到如何做的方法,我总是会收到无效类型等的调试错误

我有一个简单的数字,我希望它有#秒,然后我想让线程休眠X毫秒

该如何转换呢?我已经尝试了所有我最近一次尝试以下的尝试,但再次尝试是错误的。  帮我加油

// int countnumeric = Convert.ToInt32(Math.Round(numericUpDown1.Value, 0));

var timeSpan = new TimeSpan((long)numericUpDown1.Value);

MessageBox.Show("sleeping for milliseconds - " + Convert.ToInt32(Math.Round(timeSpan.TotalMilliseconds, 0)));

System.Threading.Thread.Sleep(Convert.ToInt32(Math.Round(timeSpan.TotalMilliseconds, 0))); ///////**

2 个答案:

答案 0 :(得分:2)

TimeSpan结构具有一些用于创建TimeSpans的非常有用的方法,您正在寻找TimeSpan.FromSeconds

var timeToSleep = TimeSpan.FromSeconds(Convert.ToDouble(numericUpDown1.Value));

Thread.Sleep(timeToSleep);

如果您使用的是异步方法,则可以使用:

await Task.Delay(timeToSleep);

答案 1 :(得分:0)

无需转换。 Thread.Sleep提供了以TimeSpan作为工期参数的重载。因此您可以致电Thread.Sleep(timeSpan);