示例#1
0
 public virtual void Enqueue(object obj)
 {
     if (_internalQueue.Count < _capacity)
     {
         _internalQueue.Enqueue(obj);
         _commonQueue.Add(obj);
     }
     else
     {
         string filePath = ChoPath.GetRandomFileName(_storageDir);
         ChoObject.Serialize(filePath, obj);
         _persistanceQueue.Enqueue(filePath);
         _commonQueue.Add(filePath);
     }
 }
示例#2
0
        public ChoQueue(int capacity, string storageDir)
        {
            if (capacity <= 0)
            {
                _internalQueue = new Queue();
            }
            else
            {
                _capacity      = capacity;
                _internalQueue = new Queue(capacity);
            }

            if (storageDir == null)
            {
                _storageDir = Path.Combine(ChoApplication.ApplicationBaseDirectory, ChoPath.GetRandomFileName());
            }
            else
            {
                _storageDir = Path.Combine(storageDir, ChoPath.GetRandomFileName());
            }
        }
示例#3
0
        public ChoQueue(int capacity, string storageDir)
        {
            if (capacity <= 0)
            {
                _internalQueue = new Queue <T>();
            }
            else
            {
                _capacity      = capacity;
                _internalQueue = new Queue <T>(capacity);
            }

            if (storageDir == null)
            {
                _storageDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ChoPath.GetRandomFileName());
            }
            else
            {
                _storageDir = Path.Combine(storageDir, ChoPath.GetRandomFileName());
            }
        }