// Функция изменения состояния сервера private void ChangeStatus() { SocketHelper.ChangeStatus(); // Изменяет состояние if (SocketHelper.Status) // Узнаёт, запущен ли сервер // Если запущен, меняет форму { statusLabel.Text = "Сервер запущен"; button1.Text = "Остановить сервер"; button2.Visible = true; // И запускает новый поток new Thread(() => { Thread.CurrentThread.IsBackground = true; while (SocketHelper.Status) { // Который отображает количество подключенных клиентов connectedLabel.BeginInvoke((MethodInvoker)(() => { connectedLabel.Text = $"Подключено {ClientHandler.testings.Count} студентов"; })); // И делает это раз в секунду Thread.Sleep(1000); } }).Start(); } else { // Если сервер не запущен, меняет форму statusLabel.Text = "Сервер отключен"; button1.Text = "Запустить сервер"; connectedLabel.Text = ""; button2.Visible = false; } }