/// <summary>
        /// Retrieves a clock from the pool.
        /// </summary>
        /// <param name="storyboardInstance">The storyboard instance that will be driven by this clock.</param>
        /// <returns>The clock that was retrieved.</returns>
        public UpfPool<StoryboardClock>.PooledObject Retrieve(StoryboardInstance storyboardInstance)
        {
            Contract.Require(storyboardInstance, "storyboardInstance");
            Contract.EnsureNotDisposed(this, Disposed);

            Initialize();

            var clock = pool.Retrieve(storyboardInstance);

            clock.Value.StoryboardInstance = storyboardInstance;
            return clock;
        }
 /// <inheritdoc/>
 protected sealed override void AnimateCore(StoryboardInstance storyboardInstance)
 {
     base.AnimateCore(storyboardInstance);
 }