老尸 发表于 2015-1-16 22:47:38

ASP.NET教程之从小处看C#.net渣滓接纳

J2EE比较成熟一点,一些比较出名的企业应用软件都是基于J2EE的。以后的发展就不好说了。不过java比较烦,学.net的话,微软把很多工具都封装好了,学起来可能容易一点。假如不必MDI来完成一个主窗体翻开多个子窗体时,
从一个窗体(主窗体)翻开一个(onlyone)别的一个的窗体(子窗体)的完成
父窗体:MainForm
publicpartialclassMainForm:Form
{
............
privatevoidmenuItem1_Load(objectsender,EventArgse)
{
ChildFormchild1=ChildForm.Create();
child1.show();
child1.Focus();
}

//......
}
子窗体:ChildForm
publicpartialclassChildForm:Form
{
.....
staticChildFormchild;

PublicstaticChildFormCreate()
{
if(child==null)
child=newChildForm();
returnChild;
}
......
}
F5运转后,切实其实完成了下面提到的功效。但是,把子窗体封闭后,想再次翻开该子窗体时,单击菜单项,会呈现非常:ObjectDisposedExceptionwasunhandled.
这是为何呢??
这里触及到C#渣滓接纳的成绩:
渣滓接纳是.NET运转库的一部分。渣滓接纳器办理一切的托管工具,一切必要托管数据的.NET言语(包含C#)都受运转库的渣滓接纳器的制约。渣滓接纳器能够断定运转渣滓接纳的最好工夫,主动举行渣滓接纳。但是渣滓接纳的一个产品是:C#工具没有断定性损坏。以是会呈现工具child已被烧毁,但又不为null,会见时发生ObjectDisposedException非常。
怎样办??
办法:应当完全接纳Child所占的资本。
路子有二:
办法一:
修正子窗体的机关函数
publicChildForm()
{
//.........
this.Disposed+=newSystem.EventHandler(Form_Disposed)
}
然后事务Form_Disposed的处置函数
privatevoidForm_Disposed(objectsender,EventArgse)
{
Child=null;
}
办法二:
重写ChildForm的OnClosed办法
ProtectedvoidOnClosed(EventArgse)
{

base.OnClosed(e);
child=null;
}
固然大概有其他的办法,列位看客有乐趣的话增补一下。别的有叙说不妥的中央,请多多指教,鄙人感激涕零。
Java欺骗了我们那么多年,如今的多核时代,我认为它气数已尽!

活着的死人 发表于 2015-1-19 23:49:49

由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。

分手快乐 发表于 2015-2-5 08:23:30

主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。

透明 发表于 2015-2-11 08:11:31

众所周知,Windows以易用而出名,也因此占据不少的服务器市场。

深爱那片海 发表于 2015-3-2 00:48:47

但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。

admin 发表于 2015-3-11 01:26:44

Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。

兰色精灵 发表于 2015-3-17 18:08:20

Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。

飘灵儿 发表于 2015-3-24 17:15:20

Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
页: [1]
查看完整版本: ASP.NET教程之从小处看C#.net渣滓接纳