阅读:2322回复:5
ae开发应用程序运行之后提示错误信息!
<P>我用ae+vbnet开发一个scenecontrol三维应用程序,现在主要是生成tin以及转换为grid的工作,最终用于三维数据显示。今天运行tin生成应用程序,调试成功,但是当我操作完之后(用户输入各种参数之后),关闭应用程序就会出现以下错误提示信息,请大家帮忙分析一下,这是为什么啊?</P>
|
|
1楼#
发布于:2005-09-24 23:31
<P>程序结束的时候,注意销毁控件</P>
<P>不过也可能和你内存或者显卡的配置有关</P> |
|
|
2楼#
发布于:2005-09-25 10:22
怎么销毁控件呢?
|
|
|
3楼#
发布于:2005-09-27 20:16
<DIV class=quote><B>以下是引用<I>木白林</I>在2005-9-25 10:22:40的发言:</B><BR>怎么销毁控件呢?</DIV>
<P>具体可以看arcgis开发帮助里的<A>Walkthrough 1 VB.NET: Creating a simple command for ArcMap</A>和<A><B>Walkthrough 1 C#: Creating a simple command for ArcMap</B></A>几篇文章,如果安装了msdn,里面详细描述了如何销毁控件和窗体等</P> |
|
|
4楼#
发布于:2005-09-27 20:20
<H3>何时应实现 Dispose 方法?</H3>
<P>如果组件从 <B>System.ComponentModel.Component</B> 继承,系统会提供 <B>Dispose </B>的默认实现。可重写此实现以提供自定义清理代码。如果通过创建 <B>Icomponent</B> 的自定义实现生成组件,则应实现 <B>IDisposable</B> 以便为组件提供 <B>Dispose</B> 方法。</P> <P>如果组件分配了系统对象、数据库连接或其他应在用户使用完组件后立即释放的短缺资源,则组件需要 <B>Dispose </B>方法。</P> <P>如果组件有对其他对象的引用,而那些对象具有 <B>Dispose</B> 方法,则也应实现 <B>Dispose </B>方法。</P> <H4>为什么实现 Dispose?</H4> <P>根据系统活动的不同,在用户使用完组件和垃圾回收检测到组件的代码不可访问之间的时间间隔可能不可预知。如果未提供 <B>Dispose</B> 方法,则在这段间隔期内,组件将一直控制其资源。</P> <H4>最坏情况的方案</H4> <P>设想一下使用数据库连接却没有 <B>Dispose</B> 方法的服务器组件。在有大量内存的服务器上,您可能创建并释放组件的许多实例,而不会对可用内存有太大影响。在此情况下,当释放了对组件的引用后,垃圾回收可能在一段时间内不<FONT style="BACKGROUND-COLOR: #0a246a" color=#ffffff>销毁</FONT>组件。</P> <P>最后,所有可用的数据库连接可能都被已释放但尚未<FONT style="BACKGROUND-COLOR: #0a246a" color=#ffffff>销毁</FONT>的组件占用了。即使服务器的内存够用,它也可能无法响应用户请求。</P> |
|
|
5楼#
发布于:2006-04-09 12:49
<P>没有这么复杂的</P>
<P>使用前先定义</P> <P>Private m_pAoInitialize As esriSystem.AoInitialize</P> <P>m_pAoInitialize = New AoInitialize</P> <P>关闭程序时</P> <P>m_pAoInitialize.Shutdown()</P> <P>就行了了</P> |
|