/// <summary>
        /// Queues up a build item
        /// </summary>
        /// <param name="buildItem">Build item to queue</param>
        public static void QueueWork( TerrainPatchBuildItem buildItem )
        {
            Interlocked.Increment( ref s_PendingBuildItems );

            //delegate
            //    {
            //        buildItem.StartBuild( );
            //        s_Marshaller.PostAction( buildItem.FinishBuild );
            //        Interlocked.Decrement( ref s_PendingBuildItems );
            //    }
            ExtendedThreadPool.Instance.Enqueue( buildItem, null );
        }
 /// <summary>
 /// Returns a build item to the internal pool
 /// </summary>
 public static void Deallocate( TerrainPatchBuildItem buildItem )
 {
     s_BuildItems.Add( buildItem );
 }