キューの適用

3585 ワード

public class QueueFactory<T>

    {

        protected static Queue ClassQueue = new Queue();



        protected T CreateRunClass(Type t)

        {

            object ObjClass = Activator.CreateInstance(t);

            ClassQueue.Enqueue(ObjClass);

            return (T)ObjClass;

        }

        public Int32 RemoveClass()

        {

            ClassQueue.Dequeue();

            return ClassQueue.Count;

        }

        public Int32 GetClassRunCount(Type t)

        {

            ////75 is my print job limit.

            //if (ClassQueue.Count > 75) //((UserProfile)ClassQueue.Dequeue()).;

            //{

            //    //ClassQueue.Clear();

            //   //RedirectToAction("Index", "Home");

            //}

            //return CreateClass(ClassName);

            if (ClassQueue.Count <= 3)

            {

                CreateRunClass(t);

            }

            return ClassQueue.Count;

        }





    }

呼び出し:
            UserProfile model=new UserProfile(){.....}

            // 

            if (new QueueFactory<UserProfile>().GetClassRunCount(model.GetType()) > 3)

            {

                // 

            }        

            //

 new QueueFactory<UserProfile>().RemoveClass();

            return View();