【C#】更新界面显示并解决this.Invoke无法访问已释放的对象
2017-06-19 14:34
405 查看
比如我在当前线程中要实时更新界面显示时间为当前时间
关闭页面的时候请注意这种写法 避免出现无法访问已释放的对象
//声明定时器 private System.Timers.Timer timer1;
//设置定时器 (在Load里设置) timer1 = new System.Timers.Timer(1000);//实例化Timer类,设置间隔时间为1000毫秒; timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Elapsed);//到达时间的时候执行事件; timer1.AutoReset = true;//设置是执行一次(false)还是一直执行(true); timer1.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;
private void timer1_Elapsed(object source, System.Timers.ElapsedEventArgs e) { //更新界面 this.Invoke((EventHandler)(delegate { try { TimeNow.Text = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); } catch { } })); }
关闭页面的时候请注意这种写法 避免出现无法访问已释放的对象
//FormClosing事件 先停下定时器 private void Form1_FormClosing(object sender, FormClosingEventArgs e) { timer1.Stop(); } //FormClosed事件 彻底关闭程序 private void Form1_FormClosed(object sender, FormClosingEventArgs e) { System.Environment.Exit(0); }
相关文章推荐
- winform 调用 this.invoke 出错 无法访问已释放的对象
- 微软bug解决方法:System.ObjectDisposedException: 无法访问已释放的对象。对象名:“Icon”
- (转)C#在父窗口中调用子窗口的过程(无法访问已释放的对象)
- 单例模式解决无法访问已释放的对象
- C#主窗体控件打开一个子窗体,子窗体关闭后,再重新打开子窗体出现:无法访问已经释放的对象
- C#线程无法访问已释放的对象
- C#在父窗口中调用子窗口的过程(无法访问已释放的对象)
- C#主窗体控件打开一个子窗体,子窗体关闭后,再重新打开子窗体出现:无法访问已经释放的对象
- C#在父窗口中调用子窗口的过程(无法访问已释放的对象)异常,不存在从对象类型System.Windows.Forms.DateTimePicker到已知的托管提供程序本机类型的映射。
- C#技巧【调用线程无法访问此对象,因为另一个线程拥有该对象的问题的解决办法】【C#读写EXCEL源码提示“office检测到此文件存在一个问题。为帮助保护您的计算机,不能打开此文件”的解决】
- C#在父窗口中调用子窗口的过程(无法访问已释放的对象)
- c#重新打开子窗体出现无法访问已释放对象的异常
- 用了invoke还是出错的解决方法.wpf 调用线程无法访问此对象,因为另一个线程拥有该对象。
- C# WeifenLuo.WinFormsUI.Docking.dll 应用之问题集 控件无法访问已释放的对象。
- C# Socket连接 无法访问已释放的对象
- C# Socket连接 无法访问已释放的对象
- C#操作Office文件,成功释放,但读取文件时提示"文件***正由另一进程使用,因此该进程无法访问此文件"的解决办法
- 如何解决更新证书、或者创建SSL证书的时候显示“无法生成证书请求,拒绝访问”等提示信息
- 单例模式-解决无法访问已释放的对象
- C# WinForm:无法访问已释放的对象