2015-08-19 4 views
1

У меня есть функция Async. В этой функции я изменяю элемент управления на странице. Деталь как этотWindows phone 8.1 RT Изменить управление в другом потоке

`async public void methodname(){ 
await ... dosomething; 
control.visibility = visibity.visible;}` 

И я использую

Task.Run(delegate() 
{ 
    GetDATA(); 
}); 

для запуска этой функции в другом потоке (я хочу эту функцию запуска с неявным). Но у меня есть такое исключение. элемент управления не может изменять в другом потоке. Кто-нибудь знает, что мне делать?

ответ

2

Чтобы обновить все компоненты пользовательского интерфейса из отдельного потока, использовать что-то вроде этого:

await Dispatcher.RunAsync(CoreDispatcherPriority.Normal,() => 
{ 
    //update any UI here 
}); 

Пример можно найти here вокруг линии 113. Код там вызывается событие акселерометра, и, таким образом, отдельный поток. Поэтому любой код для обновления текстовых полей в этом случае завернут в строки, которые я опубликовал выше.
Надеюсь, это решит вашу проблему :)

+0

Да Большое спасибо! Вы знаете, как сортировать listitem в listview по некоторому атрибуту? –

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