Exemplo n.º 1
0
        private void ReleaseObject(IsolatedWorkContainer isolated)
        {
            CleanUp(isolated);

            lock (_available)
            {
                _available.Add(isolated);
                _inUse.Remove(isolated);
            }
        }
Exemplo n.º 2
0
 private IsolatedWorkContainer GetObject(string key)
 {
     lock (_available)
     {
         if (_available.Count(x => Compare(x, key)) != 0)
         {
             IsolatedWorkContainer isolated = _available.First(x => Compare(x, key));
             _inUse.Add(isolated);
             _available.Remove(isolated);
             return(isolated);
         }
         else
         {
             //todo limits on pool size
             IsolatedWorkContainer isolated = new IsolatedWorkContainer(key);
             _inUse.Add(isolated);
             return(isolated);
         }
     }
 }
Exemplo n.º 3
0
 private bool Compare(IsolatedWorkContainer x, string key)
 {
     return((x.Key == key) || x.Key.Equals(key, StringComparison.InvariantCultureIgnoreCase));            //null keys are also keys
 }
Exemplo n.º 4
0
 private void CleanUp(IsolatedWorkContainer isolated)
 {
     isolated.Executor = null;
 }