You need to ReRegisterForFinalize when resurrecting an instance. Resurrection (mentioned in a related article) is the action to restore the root of an object from its destructor (finalizer).
This only translates the question to the question "when will you resurrect the object." In my answer to this question, I suggested that this could use a connectionpool or similar design.
source share