尝试实施ConcurrentQueue
,以防止项目被使用超过特定的次数。例如,我想要一个可以出列10次的User对象,之后,用户将被注销并处理掉。
使用Dictionary
并跟踪每个对象的使用次数,结合ConcurrentQueue
,显然很容易实现。但是,只是想知道是否有人对管理这个有任何干净的想法?
答案 0 :(得分:2)
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...
}
}
}
答案 1 :(得分:0)
创建自己的线程安全Queue<T>
,就像没有C#4.0的日子一样。在其Dequeue
方法中,记录使用次数。您无需修改项目的原始类/接口。您可以使用另一个Dictionary<IFoo, int>
作为使用计数器。