Was ist der Unterschied zwischen der Verwendung von IDisposable und einem Destruktor in C #?

Wann würde ich IDispose in einer Klasse implementieren und nicht in einem Destruktor? Ich leseDieser Artike, aber ich vermisse immer noch den Punkt.

Meine Annahme ist, dass ich, wenn ich IDispose für ein Objekt implementiere, es explizit "zerstören" kann, anstatt darauf zu warten, dass der Garbage Collector es tut. Ist das richtig

Bedeutet das, dass ich Dispose für ein Objekt immer explizit aufrufen sollte? Was sind einige gebräuchliche Beispiele dafür?