キューの適用
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();