我如何让我的c#程序睡眠(暂停执行)50毫秒?
当前回答
使用这段代码
using System.Threading;
// ...
Thread.Sleep(50);
其他回答
在Windows中无法指定确切的睡眠时间。你需要一个实时的操作系统。最好的方法是指定一个最小睡眠时间。然后由调度器在此之后唤醒线程。永远不要在GUI线程上调用. sleep()。
可读性:
using System.Threading;
Thread.Sleep(TimeSpan.FromMilliseconds(50));
从.NET Framework 4.5开始,你可以使用:
using System.Threading.Tasks;
Task.Delay(50).Wait(); // wait 50ms
既然现在你有了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线程。
使用这段代码
using System.Threading;
// ...
Thread.Sleep(50);
推荐文章
- 防止在ASP中缓存。NET MVC中使用属性的特定操作
- 转换为值类型'Int32'失败,因为物化值为空
- c#中有任何连接字符串解析器吗?
- 在Linq中转换int到字符串到实体的问题
- 是否可以动态编译和执行c#代码片段?
- 创建自定义MSBuild任务时,如何从c#代码获取当前项目目录?
- c#和Java的主要区别是什么?
- 在c#中创建一个特定时区的DateTime
- .NET中的属性是什么?
- csproj文件中的“Service Include”是干什么用的?
- 如何使用try catch进行异常处理是最佳实践
- 替换字符串中第一次出现的模式
- .NET中字节的字面后缀?
- 如何处理AccessViolationException
- c#忽略证书错误?