public override void QueueWorkerItem(ThreadExecutorItem <T> item)
        {
            if (this.ExecutorService.IsShutdown)
            {
                return;
            }

            if (item != null)
            {
                _queue.Enqueue(item);
                if (_checkItemCount)
                {
                    Interlocked.Increment(ref _itemCount);
                }
            }
        }
Example #2
0
        public void PostMessage(AppNotifyData data)
        {
            ModuleProc PROC = new ModuleProc(this.DYN_MODULE_NAME, "PostMessage");

            try
            {
                if (_host != null)
                {
                    _queue.Enqueue(data);
                }
            }
            catch (Exception ex)
            {
                Log.Exception(PROC, ex);
                _host = null;
            }
        }
Example #3
0
        public override void QueueWorkerItem(ThreadExecutorItem <T> item)
        {
            if (this.ExecutorService.IsShutdown)
            {
                return;
            }

            using (ILogMethod method = Log.LogMethod(this.DYN_MODULE_NAME, "QueueWorkerItem"))
            {
                try
                {
                    if (item != null)
                    {
                        string uniqueKey = item.UniqueKey;
                        ConcurrentQueue <ThreadExecutorItem <T> > dataQueue = null;

                        if (!_dataQueues.ContainsKey(uniqueKey))
                        {
                            _dataQueues.Add(uniqueKey, (dataQueue = new ConcurrentQueue <ThreadExecutorItem <T> >()));
                        }
                        else
                        {
                            dataQueue = _dataQueues[uniqueKey];
                        }

                        dataQueue.Enqueue(item);
                        Interlocked.Increment(ref _itemCount);

                        method.DebugV("( {0}::QueueWorkerItem ) Queue Count : {1:D}, Item Count : {2:D}", _threadName, _dataQueues.Count, _itemCount);
                        _signalQueue.Enqueue(0);
                    }
                }
                catch (Exception ex)
                {
                    method.Exception(ex);
                }
            }
        }
 public void Enqueue(T item)
 {
     _queue.Enqueue(item);
 }
 public void NotifyData(AppNotifyData data)
 {
     _queue.Enqueue(data);
 }