wpf中,Loaded事件中,做了些读取数据操作之后, Task中调用一个不断更新数据的方法后,界面卡死了。
1.注释Application.Current.Dispatcher.Invoke及里面的代码后,又不卡了
2.改用Timer去执行RefreshData中的代码不卡,但又达不到需求
3.想将RefreshData写为async方式,但又提示要用await,不然是同步 ;但我想采用异步,让这个自己开个线程去执行就好
我现在就是想在加载窗体后,单独开个异步线程处理界面更新。界面还可以响应其他操作,求指教
private void Monitoring_Loaded(object sender, RoutedEventArgs e)
{
Task.Run(() =>
{
RefreshData();
});
}
public void RefreshData()
{
while(true)
{
Application.Current.Dispatcher.Invoke
....
}
}