Как действие 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;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д