/// <summary> /// Returns an element back to the pool. /// </summary> /// <param name="rEdge"></param> public static void Release(MyCustomMessage rInstance) { if (rInstance == null) { return; } rInstance.Clear(); // Reset the sent flags. We do this so messages are flagged as 'completed' // and removed by default. rInstance.IsSent = true; rInstance.IsHandled = true; // Make it available to others. sPool.Release(rInstance); }
/// <summary> /// Pulls an object from the pool. /// </summary> /// <returns></returns> public new static MyCustomMessage Allocate() { // Grab the next available object MyCustomMessage lInstance = sPool.Allocate(); // Reset the sent flags. We do this so messages are flagged as 'completed' // by default. lInstance.IsSent = false; lInstance.IsHandled = false; // For this type, guarentee we have something // to hand back tot he caller if (lInstance == null) { lInstance = new MyCustomMessage(); } return(lInstance); }