我到处搜索,如果听起来很荒谬,我感到困惑,但是我无法在任何地方找到如何做的方法,我总是会收到无效类型等的调试错误
我有一个简单的数字,我希望它有#秒,然后我想让线程休眠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))); ///////**
答案 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);
。