У меня есть служба Windows, которая контролирует COM-порт, подключенный к оборудованию поставщика. Это очень загруженное оборудование, которое постоянно опрашивает другие устройства в сети (это «сеть» по витой паре RS485). Моему программному обеспечению необходимо эмулировать количество аппаратных устройств X на этом проводе, поэтому у меня есть многопоточная вещь с многоуровневым конечным автоматом, чтобы в любой момент отслеживать, где находится протокол связи.
Проблема со службой Windows (это моя первая, кстати, BTW) заключается в том, что вам нужна некоторая отладка, чтобы вы знали, что все работает правильно. Когда я впервые разрабатывал этот код конечного автомата / многопоточности, у меня была форма окна с RichTextBox, которая отображала символы ASCII, идущие назад и вперед в строке. Похоже, я не могу иметь такую приятность GUI с сервисом. Я попытался открыть форму в службе через другую программу, которая отправляла служебные сообщения, полученные через обработчик OnCustomCommand (), но, похоже, это не сработало. Я проверил "Разрешить службе взаимодействовать с рабочим столом" и все. Я использовал методы Show () и Hide () моей формы отладки.
Полагаю, мне не нужно видеть всех отдельных персонажей, идущих по очереди, но человек, который наверняка был бы хорош (думаю, мне действительно нужно их видеть :-)). Так у кого-нибудь есть сумасшедшие идеи, которые могут мне помочь? Я не хочу перегружать систему каким-либо IPC, который не предназначен для большого объема данных, которые обязательно пройдут. Тем не менее, это будет только очень кратковременная отладка, только подтверждение того, что программа, ключ RS485-USB и аппаратное обеспечение работают.