我有一个异步功能。在这个函数中,我修改了页面中的控件。像这样的细节
`async public void methodname(){
await ... dosomething;
control.visibility = visibity.visible;}`
我用
Task.Run(delegate()
{
GetDATA();
});
在另一个线程中运行此函数(我希望此函数以隐式运行)。 但我有这样的例外。控件不能在另一个线程中修改。任何人都知道我该怎么做?
答案 0 :(得分:2)
要从单独的线程更新任何UI组件,请使用以下内容:
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
//update any UI here
});
可以在第113行找到一个示例here。那里的代码是从加速度计事件调用的,因此是一个单独的线程。因此,在此事件中更新文本框的任何代码都包含在我上面发布的行中 我希望这能解决你的问题:)