2012-06-12 2 views
1

Моя проблема такая же, как и у link.Обновление UI Metro Metro #

Я работаю над новым WinRT для Приложения Metro в C# (предварительный просмотр версии win8). Проблема: Мое приложение Моя программа запускает поток в фоновом режиме, который получает сообщения с сервера (фактически, я портировал клиентское приложение XMPP). Некоторая информация должна быть обновлена ​​в пользовательском интерфейсе.

Я пробовал эту ссылку. Второй метод, похоже, будет работать для меня, но я обнаружил, что нет Dispatcher.Invoke (...) в VS2012RC intellisense, что означает, что этого метода расширения нет.

После тщательного поиска, я думаю, может быть это link может мне помочь. Но я не знаю, как начать с моего приложения в этом сценарии (поскольку я новичок в C#).

Можете ли вы дать мне совет? Я был бы признателен, если бы вы продемонстрировали фрагмент кода, который бы мне очень помог. Большое спасибо.

ответ

1

Где-то в вашем UI нить перспективе:

CoreDispatcher dispatcher = Windows.UI.CoreWindow.GetForCurrentThread().Dispatcher; 

Тогда из вашего фонового потока вызвать RunAsync функцию в dispatcher переменной, которую вы только что создали.

dispatcher.RunAsync(DispatcherPriority.Normal, <delegate to run on UI thread>); 
+0

Спасибо. Я попробую это позже. См. Это [ссылка] (http://stackoverflow.com/questions/10579027/run-code-on-ui-thread-in-winrt). – zjalex

+0

Я думаю, следует использовать CoreDispatcherPriority вместо DispatcherPriority. – zjalex

+0

Спасибо за помощь, это работает для меня. – zjalex

Смежные вопросы