Metro风格的应用程序缺少.net特性

本文关键字:net 特性 应用程序 风格 Metro | 更新日期: 2023-09-27 18:08:55

主要是出于好奇,我开始在Visual Studio 2011中编写一个小型的"Metro Style"项目,该项目在Windows Developer Preview中发布。它将XAML用于设计,c#(在我的项目中)用于代码隐藏。

c#的体验与你在Visual Studio 2008中使用。net framework 4.0获得的体验基本相同,除了这些我没能找到的功能:

  • 系统。控制台,这使得调试更困难,
  • System.Threading.Thread.Sleep(TimeSpan),这有点不方便,因为这正是我现在需要的。

那么这些功能实际上是缺失/禁用的,还是我只是看错了地方?

Metro风格的应用程序缺少.net特性

我没有安装预览,所以我不能检查。但这里有两个想法:

  1. 系统。控制台可能不可用,因为在Metro风格的应用程序中没有控制台。检查是否调试。WriteLine是可用的。它直接写入Visual Studio中的Debug窗口。

  2. Metro风格的应用程序不应该长时间阻塞线程。所有耗时超过几毫秒的任务都应该以异步方式完成。看在一段时间后执行异步回调的某种方式,例如定时器。或者您可以在一个时间跨度的末尾进行await(如TaskEx)。

对于"printf调试",我建议您使用System.Diagnostics命名空间中的Debug.WriteLine和/或Trace.WriteLine方法。它们打印到调试器输出窗口——在Developer Preview中的VS Express中,你需要首先启用它(Debug -> Windows -> output)。

对于Thread.Sleep,你能澄清你认为需要它的具体场景吗?

http://dougseven.com/2011/09/15/a-bad-picture-is-worth-a-thousand-long-discussions/

我的理解是它只是一个子集;丢失的大部分内容都与同步操作有关(所以我对Thread.Sleep()消失并不感到惊讶)。你还会找到"文件"之类的东西。Create'不能同步调用

没有Thread.Sleep(),但可以使用Task.Delay(milliseconds);

对于那些想知道什么是有用的,我说我在调试中使用它来强调异步行为。