winform.关闭窗体。exe文件依然存在内存中……
winform调用了一个类的静态方法. 关闭窗体。 exe文件依然存在内存中,而且占cpu 99%…… 问题点数:20、回复次数:29Top
1 楼geoffe()回复于 2006-08-18 11:19:21 得分 5
在关闭窗体的时候Application.Exit();Top
2 楼whmjw(明年今日十年之后)回复于 2006-08-18 11:20:06 得分 5
你是否用了多线程,如果是的话请先结束该线程Top
3 楼afhel()回复于 2006-08-18 11:20:45 得分 0
有同样的问题现在我就试试楼上的Top
4 楼wangjt18(wangjt18)回复于 2006-08-18 11:26:38 得分 0
Application.Exit(); 也不行。
我没有用线程。
我调用了一个类a,里面全是静态的方法和事件等。 等我执行完a里的方法。 然后关闭窗体。但是.exe 依然存在。而且占cpu 99%……
是不是调用完 静态方法后要销毁。 如何销毁?Top
5 楼ncjmc(快乐的砖头)回复于 2006-08-18 11:26:47 得分 1
用
this.Close();Top
6 楼wangjt18(wangjt18)回复于 2006-08-18 11:28:31 得分 0
用了 this.Close();
也不行。Top
7 楼geoffe()回复于 2006-08-18 11:29:47 得分 0
能不能把你的代码贴点出来看看?Top
8 楼johnage(湘军)回复于 2006-08-18 11:31:51 得分 0
用 this.Dispose();试试。Top
9 楼ncjmc(快乐的砖头)回复于 2006-08-18 11:31:57 得分 2
当调用 Application.Exit 方法以退出应用程序时,不引发 Form.Closed 和 Form.Closing 事件。如果在必须执行的其中一个事件中有验证代码,则在调用 Exit 方法之前,应分别为每个打开的窗体调用 Form.Close 方法。
Top
10 楼pegtop(再回首)回复于 2006-08-18 11:32:02 得分 0
一般说来用Application.Exit()就可以了,
楼主在前面用This.dispose()试试Top
11 楼wangjt18(wangjt18)回复于 2006-08-18 11:33:17 得分 0
代码太多了。2000行。
这个类是个控制台程序 , 我把它改成 winform上应用。
可能是把 控制台程序里的 东西没有销毁。Top
12 楼ncjmc(快乐的砖头)回复于 2006-08-18 11:33:49 得分 2
试试Environment.Exit(0);
Top
13 楼wangjt18(wangjt18)回复于 2006-08-18 11:36:28 得分 0
谢谢大家。 我想问题出在 :这个类在控制台应用程序。 运行正常。 我把它改成winform 把里面的某些无用东西 调用了 而没有销毁?
高手指点一下: 该怎么做?Top
14 楼geoffe()回复于 2006-08-18 11:37:31 得分 0
肯定是东西没有销毁了
就是看没有销毁的代码出现在什么地方
你在占用内存的地方
用完了就释放一下Top
15 楼wangjt18(wangjt18)回复于 2006-08-18 11:49:46 得分 0
还有 运行着个类的时候 cpu 占用正常。 但是一点关闭窗体。 就马上升到99%Top
16 楼wangjt18(wangjt18)回复于 2006-08-18 12:54:50 得分 0
?Top
17 楼wuhuiITren(乌龟)回复于 2006-08-18 15:55:38 得分 0
借人气提个问题,实在没分了,
问题一句话:我的数据库连接是用完就关闭的,怎么我还原数据库的时候提示数据库正在使用呢?Top
18 楼deadshot123(空调=头晕)回复于 2006-08-18 16:05:45 得分 2
whmjw(明年今日十年之后) 正解
最差的方法就是Process.Kill()
to:wuhuiITren(混了这么久也才一条裤衩)
也许数据库还有别人占用的
实际有人用 或者死锁了,数据库认为有人占用Top
19 楼wuhuiITren(乌龟)回复于 2006-08-18 16:07:40 得分 0
解决办法:??Top
20 楼sunyongwang(旺旺)回复于 2006-08-18 16:57:40 得分 0
主线程还没有结束。
TO:wuhuiITren(混了这么久也才一条裤衩)
把数据库重新启动一下,所有的链接就全断开了。然后再还原。Top
21 楼wangjt18(wangjt18)回复于 2006-08-18 17:47:22 得分 0
kill 掉也行 。只是不知原因!Top
22 楼jiangna_100(jiangna)回复于 2006-08-18 18:13:40 得分 0
我的程序也是这样啊,加了exit可是还得在任务管理器里结束程序,Top
23 楼wuxing2006(金宝)回复于 2006-08-18 19:52:57 得分 2
a a1=new a();
a.dispose()
再 close()Top
24 楼edwin110(戴戴)回复于 2006-08-18 21:13:13 得分 0
net里有个是Process类~实在不行用这个类有窗体close没窗体killTop
25 楼idda(碗掉了,头大个疤)回复于 2006-08-18 23:08:58 得分 1
问题一句话:我的数据库连接是用完就关闭的,怎么我还原数据库的时候提示数据库正在使用呢?
-------------------------------------------
假如有其它的用户连接到你数据库,还原前可以用
ALTER DATABASE dbname
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE
强行关闭所有连接并回滚事务,再还原即可
Top
26 楼idda(碗掉了,头大个疤)回复于 2006-08-18 23:10:57 得分 0
我觉得你将控制台该为winfrom的时候是不是有什么控件初始化或者容器有问题?按说不应该出现这种情况的,建议你不要手工添加winform初始化代码,出错不好察Top
27 楼ilove8(千里|你去哪里了,我等了你很久了!)回复于 2006-08-18 23:14:08 得分 0
upTop
28 楼kingtoo009()回复于 2006-08-19 10:33:58 得分 0
路过...
------------------------------------------------------------------------------------
100M.Net空间+50M企业邮局=60元/年
100M.Net空间+国际顶级域名=100元/年
国际顶级域名.com.net.cn=50元/年
本站申请域名可绑定免费10M Asp.Net空间
1000M.Net空间 + 100M MsSql数据库 + 1000M企业邮局 + 顶级域名=600元/年
数据库 企业邮局 网站推广 整机租用 美国空间 网站建设 均有售
还有很多优惠套餐提供给各个用户层.
有意者可联系电话:021-64802212 传真:021-64802212
咨询信箱:info@kingtoo.com 咨询OICQ:68311305,379620139 81778640Top
29 楼wangjt18(wangjt18)回复于 2006-09-05 16:11:06 得分 0
谢谢Top
30 楼skywolfma(蓝色愿望沙)回复于 2006-09-05 16:18:26 得分 0
……这种情况基本上都是由于线程没有关闭造成的,当然也有可能是把主窗体隐藏了只关闭了子窗体。要改的话就检查一下所有的线程,在关闭前先全部销毁Top




