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

How do I sleep for a certain number of milliseconds?

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

我有一个简单的数字,我希望它有 # 秒,然后我想让线程休眠 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))); ///////**

不需要转换。 Thread.Sleep 提供了一个以 TimeSpan 作为持续时间参数的重载。所以你可以打电话给 Thread.Sleep(timeSpan);.

TimeSpan struct has some very useful methods for creating TimeSpans, you are looking for TimeSpan.FromSeconds

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

Thread.Sleep(timeToSleep);

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

await Task.Delay(timeToSleep);