CancellationTokenSource

CancellationTokenSource

我有一个多线程的应用程序,并且aCancellationToken用作共享对象。每个线程都可以触发它来告诉其他线程作业已被取消。然后一个线程进行清理,并处理这样的每个对象。然后,如果线程尝试使用它,则会引发异常:
CancellationTokenSource已被释放。
在使用对象之前,如何确定它已被释放?

最佳答案

好吧,根据reflector的说法,CancellationTokenSource有一个内部的IsDisposed方法可以告诉你,但是由于它是内部的,你不应该调用它。
在任何情况下,如果一个线程拖出其他线程依赖的数据结构和对象,那么不要这样做。修复代码并让这些对象在其需要的时间内保持活动状态。
换句话说,在处理之前,请等待其他线程完成需要CancellationTokenSource的操作。

关于c# - 如何找出物体已处置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5655345/

10-12 22:35