Высокое потребление ОЗУ при попытке в c # - PullRequest
0 голосов
/ 12 марта 2020

Эта часть моего программного обеспечения потребляет около 600 МБ ОЗУ после запуска и не отвечает в течение нескольких секунд во время пробного запуска.

Я отправляю команду, и в функции Readping читает ответ и помещает это в текстовом поле. Ответ, который возвращается, в четыре раза превышает максимальное расстояние каждой из последних пятнадцати секунд, в конце отправьте ok или error. Я создал это, чтобы оставаться в l oop до тех пор, пока код не ответит нормально или не выдаст ошибку, и выхожу из l oop всякий раз, когда

  void FPing()
{
    string PingMessage;

    if (txtping.Text == "") { AnsPing.Text = "Please insert IP"; }
    else
    {
         try
       {
            AnsPing.Text = "";
            timer1.Enabled = false;
            btnping.Enabled = false;
            PingMessage = "AT+PING=\"" +txtping.Text +"\"\r\n";

            serialPort_NB.Write(PingMessage);
            ReadPing();

             btnping.Enabled = true;
             timer1.Enabled = true;
         }
        catch {
           // AnsPing.Text = "Error";
              }
    }  
}

void ReadPing() {

    try
    {
        UInt16 TiOt = 0; ;
        ReadBuffer_NB = "";
        serialPort_NB.ReadTimeout = 20000;

        do
        {
            TiOt++;
            ReadBuffer_NB = serialPort_NB.ReadLine();
            AnsPing.Text += ReadBuffer_NB;
            AnsPing.Text += "\n";
            Thread.Sleep(200);

        } while ((ReadBuffer_NB.Contains("ERROR") == false) && (ReadBuffer_NB.Contains("OK") == false) && TiOt < 10);

        if (TiOt >= 10) { ReadBuffer_NB = "Unknown issue. please restart your device."; }
    }
    catch { }
}
...