In meinem Code habe ich eine Klasse, die einen neuen Thread erstellt. Dieser neue Thread hat einen Dispatcher, daher wird der Thread nicht beendet, es sei denn, ich rufe
Dispatcher.CurrentDispatcher.InvokeShutdown();
Der Thread kann nicht außerhalb meiner Klasse referenziert werden. Also dachte ich: Wie kann ich sicherstellen, dass mein Thread endet, wenn mein Objekt Garbage Collect ist?
Eine Antwort ist die Verwendung von IDisposable, aber wenn jemand vergisst, Dispose() aufzurufen, wird der Thread niemals anhalten, so dass dies keine Lösung ist.
Eine andere Antwort ist zwei verwenden Dispose + Destructor, aber ich habe gehört, dass wir nur den Destructor für Release unmanaged Ressource verwenden sollten. Ich bin in einer Sackgasse.
Was ist die beste Lösung?