我有一个很大的stream
(代表一张图片)。我有两个任务要做:
Task.Run
)我的问题是:由于同一流对象在两个不同的异步任务中被两个指针引用,因此我应该在哪里放置该流?我可以检测引用流的指针的数量吗?还是至少我可以在处置流之前检测到该流是否正在使用(甚至被另一个线程使用)?
我不知道两项任务中的哪一项先完成。
如果您的实现是线程安全的,并且您确实确实需要在多个地方使用一次性容器,那么您可以在ReactiveExtensions(Rx)中使用RefCountDisposable。例如:
RefCountDisposable refDisposable = new RefCountDisposable(stream);
IDisposable ref1 = refDisposable.GetDisposable();
IDisposable ref2 = refDisposable.GetDisposable();
当ref1
和ref2
都被处置时,stream
将被处置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句