Ярлык не будет обновлять текст = "" - PullRequest
0 голосов
/ 02 мая 2019

Прежде, чем я начну, я знаю, что это грязно, я заставляю это работать прежде, чем я уберу это.Это также только для моего собственного роста знаний, я не собираюсь распространять это по всей компании.Я создал программу мониторинга для проверки состояния нескольких серверов для одного из моих клиентов.Мне удалось получить все необходимые мне данные от ping до серверов, я беру данные и отправляю их в метод «sort», где он отправляет их следующему методу, который выясняет, какую метку мне следует изменить в тексте, он превращает это в оператор if, но не обновляет текст.

Я уже пробовал:

Application.doEvents();

Label.Refresh();

Label.Update();

Я тоже пытался использовать многопоточность, возможно, это будет возможно

Я даже пытался использовать кнопку для обновления вручную, но это тоже не сработало.

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Button1_Click(object sender, EventArgs e)
    {
        Synergy s = new Synergy();
        s.Start();
    }

    private void Label2_Click(object sender, EventArgs e)
    {

    }

    public void Sort(String Name, double P, long RTT, String Response)
    {
        Console.WriteLine(Name + ": Inside Sort");
        if (Name.Contains("SYN-"))
        {
            SynergySort(Name, P, RTT, Response);
        }
    }

    public void SynergySort(String Name, double P, long RTT, String Response)
    {
        Console.WriteLine(Name + ": Inside Synergy Sort");
        if (Name.Equals("SYN-DC01"))
        {
            Console.WriteLine(Name + ": Inside DC01 SORT");
            this.SD1R.Text = RTT.ToString();
            this.SD1P.Text = P.ToString();
        }
        else if (Name.Equals("SYN-DC03"))
        {
            Console.WriteLine(Name + ": Inside DC03 SORT");
            this.SD3R.Text = RTT.ToString();
            this.SD3P.Text = P.ToString();
        }
    }

}

public class Synergy
{

    private Form1 f = new Form1();
    private Pinger ping = new Pinger();

    public void Start()
    {
        NAS01Scan();
        DC03Scan();
        TRACKERScan();
        DC01Scan();
        VoiceScan();
        NETAPPScan();
    }

    public void NAS01Scan()
    {
        Console.WriteLine("Pinging NAS01");
        ping.IP("172.16.xx.xxx", 5, "SYN-NAS01");
    }

    public void DC03Scan()
    {
        Console.WriteLine("pinging DC03");
        ping.IP("172.16.xx.xxx", 5, "SYN-DC03");
    }

    public void TRACKERScan()
    {
        Console.WriteLine("pinging TRACKER");
        ping.IP("172.16.xx.xxx", 5, "SYN-TRACKER");
    }

    public void DC01Scan()
    {
        Console.WriteLine("pinging DC01");
        ping.IP("172.16.xx.xxx", 5, "SYN-DC01");
    }

    public void NETAPPScan()
    {
        Console.WriteLine("pinging NETAPP");
        ping.IP("172.16.xx.xxx", 5, "SYN-NETAPP");
    }

    public void VoiceScan()
    {
        Console.WriteLine("pinging AVAYA_Voice");
        ping.IP("172.16.xx.xxx", 5, "SYN-AVAYA_Voice");
    }

}

public class Pinger
{

    private Form1 f = new Form1();

    public void IP(String host, int echoNum, String Name)
    {
        long totalTime = 0;
        PingReply reply = null;
        int timeout = 120;
        Ping pingSender = new Ping();
        PingOptions options = new PingOptions();
        options.DontFragment = true;
        string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
        byte[] buffer = Encoding.ASCII.GetBytes(data);

        int failed = 0;

        for (int i = 0; i < echoNum; i++)
        {

            reply = pingSender.Send(host, timeout, buffer, options);
            if (reply.Status == IPStatus.Success)
            {

            }
            else
            {
                failed += 1;
                Console.WriteLine(Name + ": " + reply.Status);
            }
        }

        totalTime += reply.RoundtripTime;

        Console.WriteLine(Name + ": RoundTrip time: {0}", reply.RoundtripTime);

        Console.WriteLine(Name + ": Time in MS = " + totalTime / echoNum);

        double percent = (failed / echoNum) * 100;

        Console.WriteLine(Name + ": Percent Loss is " + percent);

        f.Sort(Name, percent, reply.RoundtripTime, reply.Status.ToString());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...