WinForm程序在Windows7上运行时EndInit()引发异常

时间:2021-07-09 08:53:46
我在windows xp上使用OWC控件开发了一个WinForm的小程序来显示图表。
Form load的时候,对ChartArea初始化,用到BeginInit()和EndInit()。
在XP的环境下运行正常,但是到了Windows7,出现异常: System.Reflection.TargetInvocationException: Unable to get the window handle for the "ChartSpace" control...
最后只好删除EndInit(),程序得以运行。

我的问题是我使用了BeginInit(), 但是没有用EndInit(),这样做有什么后果?

3 个解决方案

#1


我也遇到这个问题,不知道楼主解决了没有

#2


不使用EndInit(),异步对象在.NET中不会被销毁,将会一直贮存在内存中,如果频繁调用BeginInit(),则内存会无限制增长,直到内存溢出,如果你只调用一次,则没有影响

#3


MSDN里面的解释:

FrameworkElement.EndInit 方法:指示元素的初始化过程已完成
如果之前调用了 BeginInit,基实现将引发 Initialized 事件。否则,如果未调用 BeginInit,或者未能确定是否已调用 BeginInit,则不会引发 Initialized,而是引发一个异常。
所以说调用了BeginInit(),就要用EndInit

#1


我也遇到这个问题,不知道楼主解决了没有

#2


不使用EndInit(),异步对象在.NET中不会被销毁,将会一直贮存在内存中,如果频繁调用BeginInit(),则内存会无限制增长,直到内存溢出,如果你只调用一次,则没有影响

#3


MSDN里面的解释:

FrameworkElement.EndInit 方法:指示元素的初始化过程已完成
如果之前调用了 BeginInit,基实现将引发 Initialized 事件。否则,如果未调用 BeginInit,或者未能确定是否已调用 BeginInit,则不会引发 Initialized,而是引发一个异常。
所以说调用了BeginInit(),就要用EndInit