我天生就是一个网络和后端程序员。通常我会尝试使Windows程序无效。现在,我必须成为WPF客户。
我有一个后台任务,每一次都会引发一个事件。(它像轮询程序一样工作,并且当满足条件时会引发事件)。作为我的菜鸟,我编写了此事件附带的代码以更新UI。
private void IsDisconnectedEvent()
{
UserWindow.Visibility = Visibility.Hidden;
DisconnectWindow.Visibility = Visibility.Visible;
}
这给出了一个例外,因为我不在同一线程上。经过一番谷歌搜索后,我发现我应该使用以下代码:
private void IsDisconnectedEvent()
{
Dispatcher.Invoke(() =>
{
UserWindow.Visibility = Visibility.Hidden;
DisconnectWindow.Visibility = Visibility.Visible;
});
}
这行得通,但这不是唯一的事件,因此使我的代码很难看。有更好的方法可以做到这一点吗?
相关分类