コード例 #1
0
ファイル: SmartQueueMapper.cs プロジェクト: lichange/NS
        public void RecycleMembers()
        {
            List <TMember> wouldBeRemovedMembers = new List <TMember>();

            foreach (var item in _mapping)
            {
                if (!item.Value.IsRunning && item.Value.Length <= 0)
                {
                    wouldBeRemovedMembers.Add(item.Key);
                }
            }

            lock (_syncRoot)
            {
                foreach (var member in wouldBeRemovedMembers)
                {
                    SmartQueue <TItem> queue = _mapping[member];
                    if (!queue.IsRunning && queue.Length <= 0)
                    {
                        _mapping.Remove(member);
                        queue.Dispose();
                    }
                }
            }
        }
コード例 #2
0
ファイル: ScheduleTaskManager.cs プロジェクト: lichange/NS
 /// <summary>
 /// Releases unmanaged and - optionally - managed resources
 /// </summary>
 /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
 private void Dispose(bool disposing)
 {
     if (disposing)
     {
         if (_queue != null)
         {
             _queue.Dispose();
         }
     }
 }
コード例 #3
0
ファイル: SmartQueueMapper.cs プロジェクト: lichange/NS
 public void Remove(TMember member)
 {
     lock (_syncRoot)
     {
         if (_mapping.ContainsKey(member))
         {
             SmartQueue <TItem> queue = _mapping[member];
             _mapping.Remove(member);
             queue.Dispose();
         }
     }
 }