Я использую задачу CheckMail для проверки почты каждые 15 секунд.Каждый раз, когда эта задача повторяется, память увеличивается.В чем проблема?Я ничего не создаю.
Клиент был внутри потока, поэтому он вызывался каждый раз.После того, как я вынул его, ничего не изменилось.То же самое и со списком отправителей.
class MailCheckThread
{
private ImapClient Client;
private List<string> Senders;
//Thread
private Task CheckMail;
public MailCheckThread()
{
Client = new ImapClient("imap.gmail.com", 993, Hemail, Hpassword, AuthMethod.Login, true);
Senders = APM_SharedClasses.MailSender.Sender();
MailTimer_Thread();
Console.WriteLine("Creating mail check thread!");
CheckMail.Start();
}
private void MailTimer_Thread()
{
CheckMail = new Task(() =>
{
while (true)
{
IEnumerable<uint> uids = Client.Search(
SearchCondition.From(Senders[0]));
if (uids.Count() > 0)
{
MailMessage msg = Client.GetMessage(uids.First());
Console.WriteLine($"Message from : {msg.From} | Subject : {msg.Subject} | Body : {msg.Body}");
}
Thread.Sleep(15000);
}
});
}
}
Как я могу оптимизировать код в этом случае?Что я делаю не так?