Explain how do objects get marked for Garbage Collection, and why is it the case that we cannot predict when a GC visit will happen? Also, when does the collection actually happen?

What causes an object to move from Generation 0 to Generation 1 or to Generation 2, and why is most process memory in Generation 2?

Can a .NET application have a true memory leak as in the C++ sense where we allocate a chunk of memory and throw away the handle/pointer to it?

What does Garbage Collection for the Garbage Collector?

How does Multi-Core processors improve performance of GC Operations? Can parallelism benifit things in GC? [GC Threads].


In the Database Connection side, why do I have to close and dispose its objects? Isnt that the job of the GC?


Why does GC Halt Program execution as it searches for objects to GC? Isnt this bad for performance?

What happens when the GC is unable to reclaim memory used by objects marked for Garbage collection? How does GC behave under exhaustive system conditions ?

Can GC cause memory corruption?


Thanks