我如何让我的c#程序睡眠(暂停执行)50毫秒?


当前回答

可读性:

using System.Threading;
Thread.Sleep(TimeSpan.FromMilliseconds(50));

其他回答

System.Threading.Thread.Sleep(50);

记住,在主GUI线程中这样做会阻碍GUI的更新(它会感觉“迟缓”)。

只要把;使它也适用于VB.net。

使用这段代码

using System.Threading;
// ...
Thread.Sleep(50);

从.NET Framework 4.5开始,你可以使用:

using System.Threading.Tasks;

Task.Delay(50).Wait();   // wait 50ms
Thread.Sleep(50);

在指定的时间内,操作系统不会调度线程执行。该方法将线程的状态更改为包含WaitSleepJoin。

此方法不执行标准的COM和SendMessage抽取。 如果您需要在具有STAThreadAttribute的线程上休眠,但又希望执行标准COM和SendMessage泵送,请考虑使用指定超时间隔的Join方法的一个重载。

Thread.Join

在Windows中无法指定确切的睡眠时间。你需要一个实时的操作系统。最好的方法是指定一个最小睡眠时间。然后由调度器在此之后唤醒线程。永远不要在GUI线程上调用. sleep()。