Как лучше запустить метод в отдельном потоке? - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день! Прошу вашего опытного совета. У меня есть статический метод, созданный в консольном приложении. При запуске вываливалась консоль и выдавала определённый инфо-текс. Этот метод я хочу использовать в приложении Windows Form. При запуске его из Windows Form, естественно форма виснет, хотя свою функцию он выполняет. Я придумал запустить его в параллельном потоке, чтобы метод делал своё дело. То что пишет консоль мне по сути не важно, и нужно чтобы во время этого пользователь мог общаться с формой. Так как метод статический я передаю в него контрол на мою форму, чтобы он мог брать с текстбоксов данные. Запускать и использовать метод я пытаюсь вот так :
Thread tr = new Thread(StartModbusTcpSlave);
             tr.Start();
// tr.Abort(); - при закрытии формы, чтобы приложение не висело в процессах
Мой метод:
public static void StartModbusTcpSlave(MainForm form)
        {
                                  // this code 
                      }
При объявлении
Thread tr = new Thread(StartModbusTcpSlave);
             tr.Start();
- происходят две ошибки : - new - Наиболее подходящий перегруженный метод для 'System.Threading.Thread.Thread(System.Threading.ThreadStart)' имеет несколько недопустимых аргументов (CS1502) - StartModbusTcpSlave - Аргумент "1": преобразование типа из "группа методов" в "System.Threading.ThreadStart" невозможно (CS1503)

Суть вопроса

: 1. Как лучше организовать и как правильно (учитывая ошибки выше) работу этого метода в отдельном потоке? Т.е. либо убрать ошибки, либо другим способом. 2. Я понимаю, работать это должно, но состяпана моя программа невероятно коряво и через пень колоду и решить эту задачу можно и нужно правильно. Как? Укажите что и как сделать правильно. Спасибо!

Решение задачи: «Как лучше запустить метод в отдельном потоке?»

textual
Листинг программы
Task.Factory.StartNew(() => StartModbusTcpSlave(this));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы