gpt4 book ai didi

c# - 如何从线程更新 WPF 应用程序中的 UI?

转载 作者:行者123 更新时间:2023-12-03 09:13:32 24 4
gpt4 key购买 nike

我正在编写一个客户端/服务器应用程序,并且尝试从包含无限循环的线程更新 UI,以便执行 Socket.Receive。当我在套接字上收到数据包时,我必须更新 UI 并继续循环。问题是线程无法管理UI,所以我尝试在线程内部调用BeginInvoke,但结果是UI卡住了。是否有一个简单的过程允许在线程内调用 BeginInvoke 并将控制权返回给 UI?

最佳答案

使用阻塞调用来更新主线程上的 UI。这样,线程将等待更新完成,然后继续。您以非阻塞异步方式调用,这可能会淹没主线程,这就是它卡住的原因。

System.Windows.Application.Current.Dispatcher.Invoke(delegate{
// update UI
});

关于c# - 如何从线程更新 WPF 应用程序中的 UI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39703353/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com