【发布时间】:2017-04-24 11:25:19
【问题描述】:
在 C# 中,我们知道有多个后台线程......所以我们可以创建多个 UI 线程吗?
并且多个 UI 线程有助于在没有 freeez 的情况下更新观察集合中的数据?
如果没有。从 web 服务获取数据并更新到观察集合的最佳方法是什么..
代码:-
Thread lthrThread = new Thread((ThreadStart)delegate
{
string Data = DataFromServer()
this.Dispatcher.BeginInvoke(new Action(() =>
{
UI freeze here for 5 -10 seconds
}));
});
lthrThread.SetApartmentState(ApartmentState.STA);
lthrThread.Start();
【问题讨论】:
-
你的问题对我来说没有意义。只有一个 UI 线程。你真正想问什么?
-
嘿抱歉..实际上我想在从服务器获取数据后更新 UI 而不冻结....目前我正在使用线程进行服务器调用和使用 Dispatcher 的内部线程,但它冻结了 5-10 的 UI秒
-
只要使用
async/await -
@MickyD 嘿,你能给我提供异步/等待的示例或参考吗?我是新来的……我想了解异步/等待
-
更新代码请看一次
标签: c# wpf multithreading data-binding