如何防止一件物品被使用超过一定数量
本文关键字:何防止 一件 | 更新日期: 2023-09-27 18:04:47
尝试实现一个ConcurrentQueue
,防止一个项目被使用超过特定的#次。例如,我想要一个User对象,它可以退出队列10次,之后,用户将注销并被处置。
显然很容易通过使用Dictionary
并跟踪每个对象被使用的次数来实现,并与ConcurrentQueue
结合使用。然而,只是想知道是否有人有任何整洁的想法来管理这个?
java:
interface Dequeable
{
public int dequed();
}
class ConcurrentQueueImpl extends ConcurrentQueue
{
..................
.................
@override
public Dequeable deque()
{
Dequeable obj=.................;
**if(obj.dequed()>=10)**
{
// dispose off obj
return null;
}
return obj;
}
}
class SampleDequeableClass implements Dequeable
{
private int dequedCounter=0;
public int dequed()
{
dequedCounter++;
if(dequedCounter>=10)
{
// log off this object...
}
}
}
创建自己的线程安全的Queue<T>
,就像没有c# 4.0的日子一样。在其Dequeue
方法中,记录使用计数。您不需要修改项目的原始类/接口。您可以使用另一个Dictionary<IFoo, int>
作为使用计数器。