Exemplo n.º 1
0
 private static LoadBalancedActionPool.RecycledAction GetAction(Func <float, bool> action)
 {
     LoadBalancedActionPool.RecycledAction recycledAction;
     Ensure.ArgumentNotNull(action, "action");
     if (LoadBalancedActionPool._actions == null)
     {
         LoadBalancedActionPool._actions = new Queue <LoadBalancedActionPool.RecycledAction>(1);
     }
     if (LoadBalancedActionPool._actions.Count <= 0)
     {
         recycledAction = new LoadBalancedActionPool.RecycledAction()
         {
             action = action
         };
     }
     else
     {
         recycledAction        = LoadBalancedActionPool._actions.Dequeue();
         recycledAction.action = action;
     }
     return(recycledAction);
 }
Exemplo n.º 2
0
 private static void Return(LoadBalancedActionPool.RecycledAction action)
 {
     action.action = null;
     LoadBalancedActionPool._actions.Enqueue(action);
 }