Как действие timer1_Tick обрабатывать в новом потоке - C#
Формулировка задачи:
у меня есть timer1_Tick в котором я проверяю подключение к серверу
но если я просто его запускаю то начинает программа тормозить
как timer1_Tick обрабатывать в новом помоке чтоб не тормозило я пытался поставить в поток но мне выдавало ошибку Недопустимая операция в нескольких потоках: ... пытался разными способами исправить и подключал делегат ничего не получилось можете помоч?
private void timer1_Tick(object sender, EventArgs e) { try { Server_kanal.Server_kanal ser2 = (Server_kanal.Server_kanal)Activator.GetObject(typeof(Server_kanal.Server_kanal), "tcp://localhost:11000/met2"); chan.StopListening(ser2); s = ser2.Server_k(s); label3.ForeColor = Color.Green; label3.Text = "Сервер: доступен"; } catch { label3.Text = "Сервер: не доступен"; label3.ForeColor = Color.Red; } }
Решение задачи: «Как действие timer1_Tick обрабатывать в новом потоке»
textual
Листинг программы
private void timer1_Tick(object sender, EventArgs e) { Thread t = new Thread(IsServerConnectionActive); t.Start(); if (ok == true) { label3.ForeColor = Color.Green; label3.Text = "Сервер: доступен"; } else { label3.Text = "Сервер: не доступен"; label3.ForeColor = Color.Red; } }bool ok = false; //этот метод будет запущен в новом потоке private void IsServerConnectionActive() { try { Server_kanal.Server_kanal ser2 = (Server_kanal.Server_kanal)Activator.GetObject(typeof(Server_kanal.Server_kanal), "tcp://localhost:10000/met2"); chan.StopListening(ser2); s = ser2.Server_k(s); ok = true; } catch { ok = false; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д