Эта часть моего программного обеспечения потребляет около 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 { }
}