Как предотвратить использование предмета больше определенного количества? - PullRequest
1 голос
/ 05 августа 2011

Попытка реализовать ConcurrentQueue, который предотвращает использование элемента более определенного количества раз.Например, я хочу, чтобы объект User мог быть удален из системы 10 раз, и после этого пользователь мог бы выйти из системы и удалить его.количество раз использования каждого объекта в сочетании с ConcurrentQueue.Тем не менее, просто интересно, есть ли у кого-нибудь хорошие идеи для управления этим?

Ответы [ 2 ]

2 голосов
/ 05 августа 2011

Примерно так в 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...
        }
    }
}
0 голосов
/ 05 августа 2011

Создайте свой собственный потокобезопасный Queue<T>, как в дни без C # 4.0.И в его методе Dequeue запишите счетчик использования.Вам не нужно изменять оригинальный класс / интерфейс элемента.Вы можете использовать другой Dictionary<IFoo, int> в качестве счетчика использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...