Mostly out of curiosity, I started programming a small \"Metro Style\" project in Visual Studio 2011, the one that was released in Windows Developer Preview. It combines XAML fo
There is no Thread.Sleep()
, but you can use Task.Delay(milliseconds);
For those wondering what is it useful for, I say I use it in debug to stress async behaviour.
I don't have the Preview installed, so I can't check. But here are two thoughts:
System.Console is probably not available, because there is no Console in Metro style applications. Check if Debug.WriteLine is available. It writes directly to the Debug window in Visual Studio.
Metro style applications are not supposed to block threads for extended durations. Everything that takes more than a few milliseconds should be done in an asynchronous way. Look
for some way to execute an asynchronous callback after some time, e.g., a timer. Or you might be able to await
the end of a time span (like TaskEx.Delay in the Async CTP).
http://dougseven.com/2011/09/15/a-bad-picture-is-worth-a-thousand-long-discussions/
My understanding is that it's just a subset; most of what is missing relates to synchronous operations (so I'm not surprised that Thread.Sleep() is gone). You'll also find things like 'File.Create' cannot be called synchronously.
For "printf debugging", I suggest that you use Debug.WriteLine
and/or Trace.WriteLine
methods from System.Diagnostics
namespace. They print to the debugger output window - in VS Express that comes in Developer Preview, you'll need to enable that first (Debug -> Windows -> Output).
For Thread.Sleep
, can you clarify the specific scenario for which you believe it to be needed?