Using version 2013.3.1127.40
Hi, i have a huge memory leak in the scheduler and am trying to figure out how to fix it.
I have a scheduler that's grouped by resources. It's a medical application, the scheduler shows appointments.
On each appointment, i have heavily customized it with stack panels and buttons/labels etc to show different statuses and allow users to interact with it. I do this in the schMain_AppointmentFormatting event.
The data is bound via a bindinglist of a custom objects i created.
The scheduler also refreshes itself on a 1 minute timer to get changes/new appts etc.
the refresh method clears the bindinglist and repopulates it.
I do this between a
schMain.Appointments.BeginUpdate();
and
schMain.Appointments.EndUpdate();
schMain.SchedulerElement.Refresh();
eventually after about 35 refreshes the app locks up with an OOM. There's nothing open in the app other than the scheduler which is just sitting there refreshing itself.
I put a memory profiler on it and it appears all the custom stacklayoutpanel and labels etc i put on the appts aren't being cleaned up. If there are 40 apps on the scheduler, after 30 refreshes i end up with thousands of labels still in memory, 10's of thousands of radpropertyvalue etc.
What's the correct way to dispose of my custom stuff when it gets redrawn?
I attached a shot of ants profiler with some of the leaked data if it helps.
Thanks!
Hi, i have a huge memory leak in the scheduler and am trying to figure out how to fix it.
I have a scheduler that's grouped by resources. It's a medical application, the scheduler shows appointments.
On each appointment, i have heavily customized it with stack panels and buttons/labels etc to show different statuses and allow users to interact with it. I do this in the schMain_AppointmentFormatting event.
The data is bound via a bindinglist of a custom objects i created.
The scheduler also refreshes itself on a 1 minute timer to get changes/new appts etc.
the refresh method clears the bindinglist and repopulates it.
I do this between a
schMain.Appointments.BeginUpdate();
and
schMain.Appointments.EndUpdate();
schMain.SchedulerElement.Refresh();
eventually after about 35 refreshes the app locks up with an OOM. There's nothing open in the app other than the scheduler which is just sitting there refreshing itself.
I put a memory profiler on it and it appears all the custom stacklayoutpanel and labels etc i put on the appts aren't being cleaned up. If there are 40 apps on the scheduler, after 30 refreshes i end up with thousands of labels still in memory, 10's of thousands of radpropertyvalue etc.
What's the correct way to dispose of my custom stuff when it gets redrawn?
I attached a shot of ants profiler with some of the leaked data if it helps.
Thanks!