A>В фазе между инициализацией устройств и нормальной работой нужно сделать паузу около 2 сек.
A>System.Threading.Thread.Sleep(2000) – не помогает.
Как так "не помогает"?
Вообще непонятно, зачем тебе таймер? Сделай просто бесконечный цикл, и прямо в нём отрабатывай "основную часть программы".
... << RSDN@Home 1.0 beta 6a >>
M>>Как так "не помогает"? 1
А>1. Не помогает. Не могу понять почему. Я вызываю функцию из DLL для инициализаци устройств
А>(Терминал — работает под TCP) я так понимаю это что-то похоже на Connect.
А>Если я кручу в цикле 2 сек. Application.DoEvent то далее все нормально работает. Если использую Sleep(2000) то нет. А у Windows Service нет Application.DoEvent ...
Видимо, эта DLL использует-таки очередь сообщений Windows для своих подспудных целей. В этом случае, по-моему, нет другого выхода, как прокачивать события на низком уровне.
При инициализации стандартной дотнетовской очереди сообщений под сервисом вылетает ошибка: там зачем-то стоит проверка UserInteractive.
А>2. Я сделал бесконечный цыкл но как его запустить из OnStart (Windows Service). Я умудрился только через Timer. Если есть другой способ поскажите.
Можно запустить отдельный поток, System.Threading.Thread, или воспользоваться асинхронными делегатами. А у тебя вообще Poll вызывается?
... << RSDN@Home 1.0 beta 6a >>