You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C# WinForms标签中显示最后刷新时间与日期

解决C# WinForms Label显示最后一次数据刷新时间的问题

核心思路

不要让Timer每秒更新Label,而是仅在数据刷新操作完成的时刻更新Label文本,这样Label就只会显示最后一次刷新完成的时间。

同步刷新场景的实现代码

假设你的Timer_Tick事件中包含同步的数据刷新逻辑,直接在刷新完成后更新Label:

private void timer1_Tick(object sender, EventArgs e)
{
    // 执行你的数据刷新逻辑(比如更新ToolStripButton的数据)
    UpdateToolStripButtonData();

    // 刷新完成后,设置Label显示当前时间(即最后一次刷新时间)
    label2.Text = $"最后刷新时间: {DateTime.Now:yyyy-MM-dd HH:mm:ss}";
}

异步刷新场景的实现代码

如果数据刷新是耗时的异步操作(如网络请求、文件读取),使用async/await确保在操作完成后再更新Label,同时避免Timer重复触发:

private async void timer1_Tick(object sender, EventArgs e)
{
    timer1.Enabled = false; // 临时禁用Timer,防止重复触发
    try
    {
        // 异步执行数据刷新
        await UpdateToolStripButtonDataAsync();
        
        // 异步操作完成后,更新Label的最后刷新时间
        label2.Text = $"最后刷新时间: {DateTime.Now:yyyy-MM-dd HH:mm:ss}";
    }
    finally
    {
        timer1.Enabled = true; // 重新启用Timer
    }
}

关键说明

  • 如果你之前直接写label2.Text = DateTime.Now但没放在Timer_Tick里,Label只会显示赋值那一刻的时间,不会自动变化;如果放在Timer_Tick里每秒赋值,才会每秒更新,但这不是你需要的"最后一次刷新时间"。
  • 上述方法仅在数据刷新操作完成时更新Label,确保Label显示的是实际完成数据更新的时间点,方便你对比数据和时间排查问题。

内容的提问来源于stack exchange,提问作者villasenorbritt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 14:40:47