首页 > 解决方案 > 有没有办法在表单上确定对象的优先级?

问题描述

我有一个表格,角落里有一个计时器,重复数到 10。下面的“下一步”按钮触发用户每隔几秒钟读取一次。当我点击“下一步”按钮时,UI 在获取数据时冻结,其中包括计时器正在写入的文本框。因此,用户每次按下按钮时看到的可见数字都会冻结 2 秒。有没有办法让文本框每秒更新一次?

这是滴答事件:

private void timer_Counter_Tick(object sender, EventArgs e)
{
    if (Ticker == 9)
    {
        Ticker = 0;
    }
    else { Ticker++; }
    txtbx_Timer.Text = Ticker.ToString();
}

这是计时器启动:

timer_Counter = new System.Windows.Forms.Timer();
timer_Counter.Tick += new EventHandler(timer_Counter_Tick);
timer_Counter.Interval = 1000;
timer_Counter.Start();

在此处输入图像描述

标签: c#formsuser-interfacetimer

解决方案


@ahmed 和@Franck,根据您的评论,我发现了 backgroundworker,并将繁重的处理放在另一个似乎解决了问题的线程上。谢谢!


推荐阅读