Мы разрабатываем библиотеку на C #, которая связывается с последовательным портом. У нас есть функция, которая предоставляется делегату. Проблема в том, что мы хотим, чтобы он запускался в другом потоке.
Мы попытались создать новый поток (называемый DatafromBot
), но продолжаем использовать его следующим образом (первая строка):
comPort.DataReceived += new SerialDataReceivedEventHandler(comPort_DataReceived);
DatafromBot = new Thread(comPort_DataReceived);
DatafromBot.Start();
comPort_DataReceived
определяется как:
Thread DatafromBot;
public void comPort_DataReceived(object sender, SerialDataReceivedEventArgs e) { ... }
Происходят следующие ошибки:
Ошибка 3 Лучший перегруженный метод
соответствует «System.Threading.Thread.Thread (System.Threading.ThreadStart)»
имеет некоторые недействительные
аргументы C: ... \ IR52cLow \ CommunicationManager.cs 180 27 IR52cLow
Ошибка 4 Аргумент '1': невозможно преобразовать
из «группы методов» в
'System.Threading.ThreadStart' C: ... \ IR52cLow \ CommunicationManager.cs 180 38 IR52cLow
Любые идеи о том, как мы должны преобразовать это, чтобы заставить его скомпилировать?
Обратите внимание, что comPort.DataReceived
(обратите внимание на «.» Вместо «_») находится в системной библиотеке и не может быть изменен.