我如何让我的c#程序睡眠(暂停执行)50毫秒?
当前回答
从.NET Framework 4.5开始,你可以使用:
using System.Threading.Tasks;
Task.Delay(50).Wait(); // wait 50ms
其他回答
使用这段代码
using System.Threading;
// ...
Thread.Sleep(50);
可读性:
using System.Threading;
Thread.Sleep(TimeSpan.FromMilliseconds(50));
在Windows中无法指定确切的睡眠时间。你需要一个实时的操作系统。最好的方法是指定一个最小睡眠时间。然后由调度器在此之后唤醒线程。永远不要在GUI线程上调用. sleep()。
System.Threading.Thread.Sleep(50);
记住,在主GUI线程中这样做会阻碍GUI的更新(它会感觉“迟缓”)。
只要把;使它也适用于VB.net。
既然现在你有了async/await特性,那么最好的睡眠50ms的方法就是使用Task。延迟:
async void foo()
{
// something
await Task.Delay(50);
}
或者如果你的目标是。net 4(使用VS2010的Async CTP 3或Microsoft.Bcl.Async),你必须使用:
async void foo()
{
// something
await TaskEx.Delay(50);
}
这样你就不会阻塞UI线程。
推荐文章
- 实体框架核心:在上一个操作完成之前,在此上下文中开始的第二个操作
- 如何为构造函数定制Visual Studio的私有字段生成快捷方式?
- 如何使用JSON确保字符串是有效的JSON。网
- AppSettings从.config文件中获取值
- 通过HttpClient向REST API发布一个空体
- 如何检查IEnumerable是否为空或空?
- 自动化invokerrequired代码模式
- 在c#代码中设置WPF文本框的背景颜色
- 在c#中,什么是单子?
- c#和Java中的泛型有什么不同?和模板在c++ ?
- c#线程安全快速(est)计数器
- 如何将此foreach代码转换为Parallel.ForEach?
- 如何分裂()一个分隔字符串到一个列表<字符串>
- 如何转换列表<字符串>列表<int>?
- c#对象列表,我如何得到一个属性的和