【发布时间】:2014-02-27 13:45:33
【问题描述】:
我知道这听起来很模糊,但我会尽力解释...我有一个用 C# 制作的网络爬虫,其中包含界面上的一些选项卡。底部是带有一些状态标签的工具条容器。主选项卡有一个 ListView,它会被其他线程不断更新。
标签由每秒运行的计时器更新。
让程序运行一段时间后,标签不再更新,而焦点位于主选项卡(带有 ListView 的选项卡)上。相反,我必须单击任何其他选项卡,然后它会自动更新并每秒继续更新。
一旦我切换回主选项卡,更新就会停止。请注意,这仅在程序运行几个小时后才会发生。
所以,很抱歉这个模糊的问题,但是有没有人可以在这里指出正确的方向?
这是计时器的代码:
private void timerRuntime_Tick(object sender, EventArgs e)
{
lblRuntime.Text = string.Format("Runtime [{0:dd\\:hh\\:mm\\:ss}]", stopWatch.Elapsed);
}
谢谢!
【问题讨论】:
-
亲爱的你能分享一下相关代码吗?你用的是哪个定时器
system.Windows.Forms.Timer? -
抱歉,为计时器添加了代码,是的,它是 System.Windows.Forms.Timer
-
System.Windows.Forms.Timer类没有Elapsed属性。但是System.Diagnostics.StopWatch类可以。那么您是否正在启动StopWatch并让Timer触发读取StopWatch.Elapsed属性的Tick事件? -
我认为您需要使用
System.Timers.Timer而不是SYstem.Windows.Fomrs.Timer在下面查看我的答案 -
@SudhakarTillapudi:我很好奇你为什么这么说。
标签: c# .net multithreading winforms .net-4.5