Windows phone 8.1 RT在另一个线程中修改控件

时间:2015-08-19 12:38:22

标签: c# multithreading asynchronous

我有一个异步功能。在这个函数中,我修改了页面中的控件。像这样的细节

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

我用

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

在另一个线程中运行此函数(我希望此函数以隐式运行)。 但我有这样的例外。控件不能在另一个线程中修改。任何人都知道我该怎么做?

1 个答案:

答案 0 :(得分:2)

要从单独的线程更新任何UI组件,请使用以下内容:

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

可以在第113行找到一个示例here。那里的代码是从加速度计事件调用的,因此是一个单独的线程。因此,在此事件中更新文本框的任何代码都包含在我上面发布的行中 我希望这能解决你的问题:)