窗口执行this.close()后timer却仍然在执行

zhoujiehg 2009-03-13 06:43:47
一C#.net窗口,包含一个timer,timer每隔5秒发出一声叫,为什么窗口执行this.close()后,叫声还不停
难道this.close()并没有销毁timer
...全文
199 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jjk_by 2009-03-13
  • 打赏
  • 举报
回复
建立一个退出键,在其类内编写如下,不能实现退去:
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
gui0605 2009-03-13
  • 打赏
  • 举报
回复
很详细。。。
lateknow 2009-03-13
  • 打赏
  • 举报
回复
在formclosing事件里写if(timer1!=null)
{
timer1.dispose();
timer1 = null;
}
hechenqingtian 2009-03-13
  • 打赏
  • 举报
回复
你的资源没有释放,当一个程序完成之后,或者一个对象使用完成之后,最好都要将其所占用的资源释放

IDisposable 这个接口中就有释放内存资源的方法Dispose()。当然.net中提供了自动清理资源的垃圾回收器
所以你的应该用this.Dispose();释放资源
jqrr00 2009-03-13
  • 打赏
  • 举报
回复
timer.dtop or timer.Dispose();
实在不行就:Application.ExitTherr();
强行退出应用程序??
wuyq11 2009-03-13
  • 打赏
  • 举报
回复
关闭时通过GC回收资源
CutBug 2009-03-13
  • 打赏
  • 举报
回复
几种常见的非托管资源有:ApplicationContext,Brush,Component,ComponentDesigner,Container,Context,Cursor,FileStream,Font,Icon,Image,Matrix,Object,OdbcDataReader,OleDBDataReader
,Pen,Regex,Socket,StreamWriter,Timer,Tooltip
CutBug 2009-03-13
  • 打赏
  • 举报
回复
Timer输入非托管资源,一定要强制释放
我不懂电脑 2009-03-13
  • 打赏
  • 举报
回复
窗体关闭后,关闭在该对象内创建的所有资源并且释放该窗体。通过处理 Closing 事件,并设置作为参数传递给事件处理程序的 CancelEventArgs 的 Cancel 属性,可以防止在运行时关闭窗体。如果要关闭的窗体是应用程序的启动窗体,则该应用程序结束。

Close 时不释放窗体的一种情况是,窗体属于多文档界面 (MDI) 应用程序的一部分且是不可见的。在这种情况下,您需要手动调用 Dispose,将窗体的所有控件都标记为进行垃圾回收。

注意
在显示为无模式窗口的 Form 上调用 Close 方法时,不能调用 Show 方法使窗体可见,因为窗体的资源已被释放。若要隐藏窗体然后又使其可见,请使用 Control.Hide 方法。

CutBug 2009-03-13
  • 打赏
  • 举报
回复
timer.Close() or timer.Dispose();
lxf2000104 2009-03-13
  • 打赏
  • 举报
回复
应该是没有。就相连接对象那样,要主动销毁吧!

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧