As I mentioned previously, I'm trying to develop a Win8 Metro version of IP CAM Coontroller, so I'm basically translating the WP coding into Win8. I'm going to post a series of blog post to record (and so benefit those googler with same problem) some of the interesting issue and topic.
WP coding:
[code language=C#]
 Deployment.Current.Dispatcher.BeginInvoke(() =>
                         {
                             //do something here
                         }
                         );
 [/code]
WIN8
[code language=C#]
  Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(
                 Windows.UI.Core.CoreDispatcherPriority.Normal,
                 new Windows.UI.Core.DispatchedHandler(() =>
                 {
                     //do something here
                 }));
 [/code]
This is not end of the story, by using the RunAsync like above, you will get a compiler warning from VS2012, and it's interesting that if you assign the returning result (of RunAsync) to a variable, the warning goes away. So the final version is like:
[code language=C#]
  var dummy = Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(
                 Windows.UI.Core.CoreDispatcherPriority.Normal,
                 new Windows.UI.Core.DispatchedHandler(() =>
                 {
                     //do something here
                 }));
 [/code]