Мне нужно проверить базу данных для какой-либо запланированной задачи, когда пришло время что-то сделать.Как избавиться от всех объектов в вечном цикле WHILE в консольном приложении в C#
Но когда он запустил (не вызывая никакой другой функции), он занимает мой жесткий диск каждые 5 мин, 70 МБ. Это нормально? Как я могу решить эту проблему?
static void Main(string[] args)
{
//dhpGroup_kukuEntities _efEntities = new dhpGroup_kukuEntities();
while (true)
{
DateTime ServerNOW= DateTime.Now;
using (dhpGroup_kukuEntities _efEntities = new dhpGroup_kukuEntities())
{
List<Schedual_JSON> ListSchedual = new List<Schedual_JSON>();
var a =
_efEntities.Schedual_JSON.Where(
x =>
x.SCHJS_DateTimeSchedual.Value.Year == ServerNOW.Year &&
x.SCHJS_DateTimeSchedual.Value.Month == ServerNOW.Month &&
x.SCHJS_DateTimeSchedual.Value.Day == ServerNOW.Day &&
x.SCHJS_DateTimeSchedual.Value.Hour == ServerNOW.Hour &&
x.SCHJS_DateTimeSchedual.Value.Minute == ServerNOW.Minute &&
x.SCHHS_SendToThread == false).ToList();
if (a.Count > 0)
{
for (int i = 0; i < a.Count; i++)
{
Console.WriteLine("One Task Found!");
}
ThreadPool.QueueUserWorkItem(o => GetSchedualList(a));
foreach (var VARIABLE in a)
{
Console.WriteLine("One Scudule Regarding to User({0}) With {1} Channel(s) and {2} files Run to BasicThread", _efEntities.AspNetUsers.FirstOrDefault(x => x.Id == VARIABLE.SCHJS_UserID).UserName, getChannelCount(VARIABLE), getFileCount(VARIABLE));
VARIABLE.SCHHS_SendToThread = true;
}
_efEntities.SaveChanges();
}
}
System.GC.Collect();
}
}
Благодарим вас за ответ. Но я использовал область видимости для своего объекта. Это может dispose_efEntities объект, но может некоторые другие, такие как datetime или list <> остаются в памяти, и не разрешают мою проблему –
Это не важно, потому что сборщик мусора распоряжается каждым объектом, который они не используют. –