Thread.Sleep似乎不被支持.NET的Windows应用store 应用程序.

比如这个

System.Threading.Thread.Sleep(1000);

将在针对任何对象时编译.NET框架(2.0、3.5、4.0、4.5),但不是针对目标.NET for Windows应用store 应用程序(或在同时面向4.5和Store的可移植类库中).

System.Threading.Thread仍然在那里,只是没有睡眠方法.

我需要在我的应用程序中延迟几秒钟,是否有合适的替代品?

编辑为什么需要延迟:我的应用程序是一个游戏,延迟是为了让它看起来像电脑对手正在"思考"他的下一步行动.该方法已经被异步调用(主线程没有被阻塞),我只想降低响应时间.

推荐答案

Windows应用store 应用支持异步-Task.Delay提供"异步暂停".因此,在异步方法中,您将编写:

await Task.Delay(TimeSpan.FromSeconds(30));

...或者任何你想要的延迟.异步方法将在30秒后继续,但线程not将被阻塞,就像所有await个表达式一样.

.net相关问答推荐

如何使用AWS Lambda函数制作网络挂钩?

问:在 Blazor WASM 应用程序中存储 api 密钥的最佳方式是什么?

代码访问安全是否在任何现实世界中使用?

为什么我得到 411 Length required 错误?

防止对话框在按钮的单击事件处理程序中关闭

如何在不丢失数据的情况下重命名 Entity Framework 5 Code First 迁移中的数据库列?

如何结合 ||条件语句中的运算符

清除 .NET 的 StringBuilder 内容的最佳方法

在 .NET Core RC2 中构建 .exe 文件

什么是 C# 中的自动属性,它们的用途是什么?

如何对 LINQ to XML 中的元素进行深层复制?

DataGridView 在我的两个屏幕之一上的可怕重绘性能

如何防止任务的同步延续?

List 是否保证项目将按照添加的顺序返回?

使用+运算符的字符串连接

无法加载文件或程序集System.ValueTuple

如何使用通用扩展方法中的字符串列名在 IQueryable 上应用 OrderBy?

DateTime.Compare 如何判断日期是否小于 30 天?

任何人都知道缺少枚举通用约束的好方法吗?

SqlCommand.CommandTimeout 和 SqlConnection.ConnectionTimeout 有什么区别?