我一直在寻找一个原因,但是关于 stackoverflow 上的每一个主题,我都能找到一个繁忙的 UI 作为原因。我有非常基本的代码,仅用于测试,它根本不会更新 UI,即使我确信它不能忙于做其他事情:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
static double t = 0;
static double dt = 0.1;
private void button1_Click(object sender, RoutedEventArgs e)
{
Timer timer = new Timer(5000);
timer.Enabled = true;
timer.Elapsed += new ElapsedEventHandler(Update);
timer.Start();
}
void Update(object sender, ElapsedEventArgs e)
{
t = t + dt;
testBlock1.Text = (t).ToString();
}
}
我对其进行了调试并为textBlock1.Text
更新设置了一个断点,它确实每 5 秒中断一次,但 UI 从未更新。从代码中可以看出,当我将鼠标移到Button
用于启动计时器的按钮上时,按钮会显示其典型的“鼠标悬停”动画。为什么会发生这种情况,而不是文本更新?
如果有人可以引导我找到关于 stackoverflow 的一个好主题,请这样做,我将在这里删除我的问题,但我找不到任何主题来解释为什么即使 UI 不忙于做任何事情,这种方法也不会更新 UI别的。