2016-12-24 4 views
-1

Мне нужно проверить базу данных для какой-либо запланированной задачи, когда пришло время что-то сделать.Как избавиться от всех объектов в вечном цикле 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(); 
     } 
} 

ответ

1

using scope хорошо. Все объекты, созданные экземпляром из одноразового интерфейса, будут располагаться при создании экземпляра в операторе using в конце области действия. вам не нужно ничего делать.

+0

Благодарим вас за ответ. Но я использовал область видимости для своего объекта. Это может dispose_efEntities объект, но может некоторые другие, такие как datetime или list <> остаются в памяти, и не разрешают мою проблему –

+0

Это не важно, потому что сборщик мусора распоряжается каждым объектом, который они не используют. –

Смежные вопросы