private void Form1_Load(object sender, EventArgs e)
{
System.Threading.Timer t = new System.Threading.Timer(new TimerCallback((o) =>
{
Invoke(new Action(() => this.label1.Text = System.DateTime.Now.ToString()));
}), "", 4000, 100);
}
为什么label1显示的时间刷新几秒钟之后停止刷新了?
{
System.Threading.Timer t = new System.Threading.Timer(new TimerCallback((o) =>
{
Invoke(new Action(() => this.label1.Text = System.DateTime.Now.ToString()));
}), "", 4000, 100);
}
为什么label1显示的时间刷新几秒钟之后停止刷新了?
解决方案 »
- 请问抓起一超时如何处理比较好呢?高手进来看看!
- 安装msdn出现内部错误2349?高分求购解决方案!
- 新闻系统后台录入代码!请大家帮忙看看!谢谢!
- 跳出线程
- 关于hyperlink打开文件问题
- 请问C#中如何释放对象?
- 在C#中怎么使用 API 函数 SendMessage 来获取指定控件中的 TextBox 的某一行的内容?
- ADOCONNECTION与OLEDBCONNECTION问个明白~谢
- 困惑已久的问题,高手快来帮忙.关于控件绑定.
- 有一个工程,客户急要,用什么编都行!有兴趣给开个价和时间,留一个信箱!
- 如何中止System.Threading.Timer
- 关于winform中datagridview绑定 两个表的问题,高手帮忙★●○☆★●○☆★●○☆★●○☆★●○☆
t2.Elapsed += new System.Timers.ElapsedEventHandler((o, ee) =>
{
this.label2.Text = System.DateTime.Now.ToString();
}); t2.Interval = 100;
t2.Enabled = true;
使用System.Timers.Timer就没有问题。label2一直保持刷新。 使用System.Threading.Timer怎么不行?
this.label2.Text = System.DateTime.Now.ToString(); 这句改下: BeginInvoke(new Action(() => this.label2.Text = System.DateTime.Now.ToString())); 不改的话debug会出错,直接运行不出错。
还是不清楚为什么使用System.Threading.Timer,label1显示的时间刷新几秒钟之后停止刷新了?
label2.Invoke(跨线程要执行的方法)线程外
private void 要执行的方法
{
label2.text = System.DateTime.Now.ToString();
}
System.Timers.Timer好像没什么用,也很少用到。