You don't need to use __delete, or GC.free (which if I remember right is no-op). Use GC.collect. However you many need to do it a few times for it to actually collect. But if you do this, make sure to null out the pointer in any copies (or it'll be seen and hence not collected).