There must be a secret in .NET garbage collection that I don't understand as for now. Our C# WinForms application has a dialog that loads very many objects via a OR mapper tool. This process consumes a lot of memory and we think that most of this memory could be consumed by strings. When we open this dialog, the task menager shows 900MB of memory usage and by doing the query again, we get a out of memory exception. Whow.
Now we got the tipp that some type of garbage collection is done when we minimize the application. By doing this and maximizing it again, the application only consumes 10MBs. Cool.
But now, when we do the query again, the memory consumption suddenly jumps back to 900MB and we get the out of memory exception again.
What happens here and how can we reduce our memory consumption? In such cases, how can the memory consumption be researched and reduced?