Normal |
This handle type represents an opaque handle, meaning you cannot resolve the address of the pinned object through the handle. Used to track an object and prevent its collection by the garbage collector. |
Pinned |
This handle type is similar to GCHandleType.Normal, but allows the address of the Pinned object to be taken. This prevents the garbage collector from moving the object and hence undermines the efficiency of the garbage collector. |
Weak |
This handle type is used to track an object, but allow it to be collected. When an object is collected, the contents of the GCHandle are zeroed.Weak references are zeroed before the finalizer runs, so even if the finalizer resurrects the object, the Weak reference is still zeroed. |
WeakTrackResurrection |
This handle type is similar to GCHandleType.Weak, but the handle is not zeroed if the object is resurrected during finalization. |