コード例 #1
0
        protected void DropWorkerThreadEvents(WorkerEventType workerEventType)
        {
            try
            {
                _lockWe.Wait();

                if (workerEventType != WorkerEventType.None)
                {
                    _workerEventList.RemoveAll(we => we.EventType == workerEventType);
                }
            }
            finally
            {
                _lockWe.Release();
            }
        }
コード例 #2
0
        private WorkerEvent PopupWorkerThreadEvent(WorkerEventType workerEventType)
        {
            //выбираем задания из очереди, RedrawLayer имеет низший приоритет
            var res = WorkerEvent.Empty;

            try
            {
                _lockWe.Wait();

                //если не задан тип задание, то ищем любой в соответствии с приоритетом)
                for (var i = EventPriorityTypeConverter.Length - 1; i >= 0; i--)
                {
                    var item = i.ToEventPriorityType();

                    var tmp = _workerEventList.Find(we =>
                                                    we.EventPriority == item &&
                                                    (workerEventType == WorkerEventType.None || workerEventType == we.EventType));
                    if (tmp != null)
                    {
                        res = tmp;
                        break;
                    }
                }

                if (res != WorkerEvent.Empty)
                {
                    //выбираем все/или одно задание данного типа(зависит от типа задания)
                    if (res.IsCollapsible)
                    {
                        _workerEventList.RemoveAll(we => we.CompareTo(res) == 0);
                    }
                    else
                    {
                        _workerEventList.Remove(res);
                    }
                }
            }
            finally
            {
                _lockWe.Release();
            }
            return(res);
        }
コード例 #3
0
 public NetWorkerEvent(WorkerEventType eventType, EventPriorityType priorityType)
     : base(eventType, true, priorityType)
 {
 }
コード例 #4
0
ファイル: NetLayer.cs プロジェクト: agafonoff2000/SimpleMap
 public NetWorkerEvent(WorkerEventType eventType, EventPriorityType priorityType)
     : base(eventType, true, priorityType)
 {
 }
コード例 #5
0
 protected void PutWorkerThreadEvent(WorkerEventType workerEventType, bool isCollapsible, EventPriorityType priorityType)
 {
     PutWorkerThreadEvent(new WorkerEvent(workerEventType, isCollapsible, priorityType));
 }
コード例 #6
0
 protected void PutWorkerThreadEvent(WorkerEventType workerEventType)
 {
     PutWorkerThreadEvent(new WorkerEvent(workerEventType, false, EventPriorityType.Normal));
 }
コード例 #7
0
 public WorkerEvent(WorkerEventType pEventType, bool pIsCollapsible, EventPriorityType pPriorityType)
 {
     _eventType     = pEventType;
     _collapsible   = pIsCollapsible;
     _eventPriority = pPriorityType;
 }
コード例 #8
0
ファイル: MapLayer.cs プロジェクト: agafonoff2000/SimpleMap
 private void PutMapThreadEvent(WorkerEventType eventType, GoogleBlock block, EventPriorityType priorityType)
 {
     PutWorkerThreadEvent(new MapWorkerEvent(eventType, block, priorityType));
 }
コード例 #9
0
 public WorkerEvent(WorkerEventType pEventType)
 {
     _eventType     = pEventType;
     _collapsible   = false;
     _eventPriority = EventPriorityType.Normal;
 }
コード例 #10
0
 public WorkerEvent(WorkerEventType pEventType, bool pIsCollapsible)
 {
     _eventType     = pEventType;
     _collapsible   = pIsCollapsible;
     _eventPriority = EventPriorityType.Normal;
 }
コード例 #11
0
 public WorkerEvent(WorkerEventType pEventType, bool pIsCollapsible, EventPriorityType pPriorityType)
 {
     _eventType = pEventType;
     _collapsible = pIsCollapsible;
     _eventPriority = pPriorityType;
 }
コード例 #12
0
 public WorkerEvent(WorkerEventType pEventType, bool pIsCollapsible)
 {
     _eventType = pEventType;
     _collapsible = pIsCollapsible;
     _eventPriority = EventPriorityType.Normal;
 }
コード例 #13
0
 public WorkerEvent(WorkerEventType pEventType)
 {
     _eventType = pEventType;
     _collapsible = false;
     _eventPriority = EventPriorityType.Normal;
 }
コード例 #14
0
 public MapWorkerEvent(WorkerEventType eventType, TileBlock block, EventPriorityType priorityType)
     : base(eventType, true, priorityType)
 {
     Block = block;
 }
コード例 #15
0
ファイル: Events.cs プロジェクト: NatalieWolfe/BaseBuilder
 public WorkerEvent(WorkerEventType type, Worker worker) :
     base(EventType.WorkerEvent)
 {
     this.workerEventType = type;
     this.worker          = worker;
 }
コード例 #16
0
 private void PutMapThreadEvent(WorkerEventType eventType, TileBlock block, EventPriorityType priorityType)
 {
     PutWorkerThreadEvent(new MapWorkerEvent(eventType, block, priorityType));
 }
コード例 #17
0
ファイル: MapLayer.cs プロジェクト: agafonoff2000/SimpleMap
 public MapWorkerEvent(WorkerEventType eventType, GoogleBlock block, EventPriorityType priorityType)
     : base(eventType, true, priorityType)
 {
     Block = block;
 }