2011-09-16 7 views
19

대부분 호기심 때문에 Windows Developer Preview에서 릴리스 된 Visual Studio 2011에서 작은 "Metro Style"프로젝트를 프로그래밍하기 시작했습니다. 코드 숨김을 위해 XAML과 C# (내 프로젝트에서)을 결합합니다. ,Metro 스타일 응용 프로그램에서 .NET 기능이 누락 되었습니까?

  • System.Console :

    는 C# 경험은 내가 찾을 수 없습니다 이러한 기능을 저장, 당신은 .NET 프레임 워크 4.0와 비주얼 스튜디오 2008에서 얻을 것과 거의 동일하다 디버깅을 좀 더 어렵게 만드는 이유는 바로 지금 당장 필요했던 것보다 조금 더 불편한 것입니다.

  • 그리고 System.Threading.Thread.Sleep (TimeSpan)입니다.

이러한 기능은 실제로 없거나 비활성화 되었습니까? 아니면 잘못된 위치에서 보았습니까? 미리 감사드립니다.

답변

17

미리보기가 설치되어 있지 않아 확인할 수 없습니다. 하지만 여기에는 두 가지 생각이 있습니다.

  1. Metro 스타일 응용 프로그램에는 콘솔이 없기 때문에 System.Console을 사용할 수 없습니다. Debug.WriteLine을 사용할 수 있는지 확인하십시오. Visual Studio의 디버그 창에 직접 씁니다.

  2. 메트로 스타일 응용 프로그램은 확장 된 기간 동안 스레드를 차단하지 않습니다. 몇 밀리 초 이상 걸리는 모든 작업은 비동기 적으로 수행되어야합니다. 일정 시간 (예 : 타이머) 후에 비동기 콜백을 실행하는 방법은 을 참조하십시오. 또는 await에 비동기 CTP의 TaskEx.Delay와 같은 시간 범위가 끝날 수도 있습니다.

+7

'TaskEx'의 모든 내용이 적절한 'Task'로 옮겨 졌으므로'await Task.Delay (ms)'가이 트릭을해야합니다. –

7

"printf 디버깅"의 경우 Debug.WriteLine 및/또는 Trace.WriteLine 메서드를 System.Diagnostics 네임 스페이스에서 사용하는 것이 좋습니다. 디버거 출력 창에 인쇄됩니다. 개발자 미리보기에서 제공되는 VS Express에서 먼저 활성화해야합니다 (디버그 -> Windows -> 출력).

Thread.Sleep의 경우, 필요하다고 생각되는 구체적인 시나리오를 명확히 할 수 있습니까?

+1

감사합니다. Debug.Write가 작동했습니다. Thread.Sleep에 관해서는, 나는 루프를 신속하게 프로토 타이핑 할 필요가 있었지만, 위의 대답에 의해 제안 된 Task.Delay는 그 간격을 멋지게 채웠다. – Timst

+0

훌륭한 솔루션 - 이것은 System.Diagnostics 네임 스페이스의 WPF에서 Trace.WriteLine()과 동일합니다. – nocarrier

5

Thread.Sleep() 없지만, 당신이 유용을 위해 무엇인지 궁금 분들을 위해 Task.Delay(milliseconds);

을 사용할 수 있습니다, 내가 비동기 동작을 강조하는 디버그에 사용 말한다.