public void Return(ObjectPoolInstance _instance) { lock (syncRoot) { temp = _instance; temp.IsInUse = false; temp.SetNext(curAvailableInst); curAvailableInst = temp; } }
public ObjectPoolInstance Fetch() { lock (syncRoot) { if (curAvailableInst == null) { Expand(); } temp = curAvailableInst; curAvailableInst.IsInUse = true; curAvailableInst = curAvailableInst.GetNext(); temp.SetNext(null); return(temp); } }