Hi Jan,
Thank you for the sample
project. We analyzed it and found the issue. Because you are not using native
Nevron windows (NTopLevelWindow instances), you should clear them manually
from the
Nevron Open Vision (NOV) Desktop's Windows collection. Please update the code of the PageDialog's PageDialog_Closed event handler to:
private void PageDialog_Closed(object sender, EventArgs e)
{
canvas.ActivePage.Items.Clear();
// Remove the display window of the canvas from the Windows collection of the NOV Desktop object
NApplication.Desktop.Windows.Remove(canvas.DisplayWindow);
canvas = null;
Closed -= PageDialog_Closed;
//GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced);
GC.Collect();
GC.WaitForPendingFinalizers();
}
private void PageDialog_Closed(object sender, EventArgs e)
{
canvas.ActivePage.Items.Clear();
// Remove the display window of the canvas from the Windows collection of the NOV Desktop object
NApplication.Desktop.Windows.Remove(canvas.DisplayWindow);
canvas = null;
Closed -= PageDialog_Closed;
//GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced);
GC.Collect();
GC.WaitForPendingFinalizers();
}
If you decide to use the NOV windows (NTopLevelWindow instances) for the windows and the dialogs of your application, it won't be necessary to manually
remove the window
from the NOV desktop's Windows collection. For more information on top-level windows, please see the following article:
NOV Top Level Windows
You can also disable the hardware acceleration (GPU rendering) and the paint cache to further reduce memory usage. Please note that that the paint cache can use a specific amount of memory up to a given limit to cache some paint information an textures in order to speed up the rendering. Add the following code in the beginning of the entry point of your application - the "App.OnStartup" method override:
NApplication.EnableGPURendering = false;
NApplication.PaintCacheSettings.Enabled = false;
NApplication.EnableGPURendering = false;
NApplication.PaintCacheSettings.Enabled = false;
Best Regards,
Nevron Support Team