How would I destroy lole_data? Also, are you saying the same lole_data isn't used each time in the loop and a new one is created, wouldn't the old one be marked for garbage collection at least?
There is an issue anytime PowerBuilder uses object dot notation it creates dispatcher object that are only removed when there is an explicit garbage collection. You might add a GarbageCollect call in that loop rather than waiting for it to happen in the background.
I totally missed the close on the StreamReader as it didn't have a corresponding open (must learn C# one day
) so I've added it in. It didn't make any difference though, the memory just went up and up.
After reading some of the related blog posts about memory leaks from the XMLSerializer, I'm beginning to think that is your issue.