Ejemplo n.º 1
0
        //* -----------------------------------------------------------------------*
        /// <summary>読み込み処理をするスレッドです。</summary>
        ///
        /// <param name="mgrTexture">リソース管理クラス(テクスチャ)</param>
        /// <param name="mgrModel">リソース管理クラス(モデル)</param>
        /// <param name="mgrFont">リソース管理クラス(フォント)</param>
        /// <param name="mgrContent">コンテンツ管理クラス</param>
        /// <returns>スレッドが実行される間、<c>null</c></returns>
        private IEnumerator <object> threadLoad(
            CResourceManager <Texture2D> mgrTexture,
            CResourceManager <Model> mgrModel,
            CResourceManager <SpriteFont> mgrFont,
            ContentManager mgrContent
            )
        {
            yield return(null);

            while (true)
            {
                for (int i = 0; i < wait; i++)
                {
                    yield return(null);
                }
                for (int i = 0; i < loadPerFrame; i++)
                {
                    if (queueTexture.Count > 0)
                    {
                        mgrTexture.load(queueTexture.Dequeue(), mgrContent);
                    }
                    else if (queueModel.Count > 0)
                    {
                        mgrModel.load(queueModel.Dequeue(), mgrContent);
                    }
                    else if (queueFont.Count > 0)
                    {
                        mgrFont.load(queueFont.Dequeue(), mgrContent);
                    }
                }
            }
        }