Проверка статуса сервера - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь проверить статус на нескольких серверах одновременно, но когда я загружаю форму, приложение просто зависает без каких-либо ошибок. Это то, что я использую для проверки статуса сервера. Есть идеи?

TcpClient tcpClient = new TcpClient();

try
{
    tcpClient.Connect("ip address here", port);
    Status1.Text = "Online";
    Status1.ForeColor = Color.Green;
}
catch (Exception)
{
    Status1.Text = "Offline";
    Status1.ForeColor = Color.Red;
}

try
{
    tcpClient.Connect("ip address here", port);
    Status2.Text = "Online";
    Status2.ForeColor = Color.Green;
}
catch (Exception)
{
    Status2.Text = "Offline";
    Status2.ForeColor = Color.Red;
}

1 Ответ

0 голосов
/ 12 мая 2020

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

    static async Task CheckConnection()
    {
        TcpClient tcpClient = new TcpClient();

        try
        {
            await tcpClient.ConnectAsync("ip address here", port);
            Status1.Text = "Online";
            Status1.ForeColor = Color.Green;
        }
        catch(AggregateException a)
        {
            Status1.Text = "Offline";
            Status1.ForeColor = Color.Red;
        }
        catch (Exception)
        {
            Status1.Text = "Offline";
            Status1.ForeColor = Color.Red;
        }

    }

если вы новичок в этой модели программирования, ознакомьтесь с этой ссылкой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...