CancellationTokenSource, Wann muss ich disponieren? [Duplikat]

8

Wann soll ich eine CancellationTokenSource disponieren? Wenn ich zum Beispiel eines mache und es jedes Mal in Threads setze, klicke ich auf eine Schaltfläche:

%Vor%

Soll ich es so entsorgen? Denn wenn es so ist, wird es ein bisschen problematisch sein, da ich es in den Disposser legen muss, der beim Schließen der Anwendung entsorgt wird, da es keine Garantie dafür gibt, dass es nicht bereits entsorgt wird, wenn ich nicht sorgfältig darauf warte. und das wird eine ObjectDisposedException verursachen.

Ich habe sogar versucht, die Ausnahme zu verhindern (da ich Try Catch nicht verwenden möchte, möchte ich in diesem Fall nicht einmal den Fehler erhalten).

%Vor%

Aber gut, vielleicht sollte ich es am Ende nur entsorgen und es nicht nach jedem Mal wieder abstellen? Obwohl mir nicht gefällt, wie das einem neuen Objekt Ressourcen hinzufügen würde.

Wie geht es Ihnen mit diesen Fällen?

BEARBEITEN:

Eine konkretere Frage, die es (in meinem Fall) lösen wird.

Wie kann ich ein Bool an das CancellationToken binden? So kann ich etwas wie CTS.IsDisposed haben;

Einige Objekte haben das, aber CTS tut es nicht, wenn es hätte, würde es das Problem lösen, das ich habe. Ich verwende derzeit einen Bool separat, was ich nicht bevorzuge.

    
Zerowalker 26.08.2013, 12:14
quelle

1 Antwort

5

Sie haben hier eine Analyse gemacht Wann ist CancellationTokenSource zu verwerfen? und es scheint, dass es ziemlich nutzlos ist um zu versuchen, es richtig zu entsorgen. Lassen Sie den GC es sammeln (und wenn Sie in fast allen Beispielen von MSDN nachsehen, wird es nicht entsorgt)

    
xanatos 26.08.2013 12:22
quelle

Tags und Links