Posted 8 December 2019, 4:47 pm EST
- Updated 29 September 2022, 2:51 am EST
Hi Satish,
The developer further investigated on the issue. As per him, the issue is not related to Chart8 or the Windows version, but instead the memory state of the machine running the application, the .NET mechanism of hosting an ActiveX control and the timing of the .NET garbage collection. He concluded this by automating the open and close process of Form in the sample with a pair of timers. When running the original automated sample at his end, the exception occurred with as few as 12 iterations and as many as 99 iterations - it just depended upon how the program was loaded and the state of the .NET heap. It appears that .NET form cleanup operations (which interact with the chart) were occurring after the chart had been released from memory which results in a heap-memory access violation (i.e. - attempting to use memory that had already been deallocated).
By forcing a garbage collect upon form closure, it is possible to avoid the issue. The attached image shows that we were able to run a final modification of the sample with a forced garbage collect with over 6800 iterations before stopping the program. At the bottom of the image is code showing a simple override of the Form.OnClose method for Form2 that forces a garbage collect.
The newly attached sample, WindowsApp12-Mod.zip has changes which automate the test and the force garbage collect. Pressing the AutoRun button toggles the automation. Pressing the original “Button 1” button, allows manual open/close operations.
Hope that helps.
Thanks,
Pragati
WindowsApp12-Mod.zip