«Простой» вопрос, в консольном приложении, как мы можем сделать System.Timers.Timer
Истекшее событие вызывается в основном потоке?C# - System.Timers.Timer Истекшее событие в главной теме
Я прочитал кое-что о собственности SyncronizingObject
, но в настоящее время у меня не было достаточного количества попыток реализовать класс, который реализует интерфейс ISyncronizeInvoke
.
EDIT (для осветления):
Я пытаюсь моделировать классическую модель событий. У меня есть код, который следит за состоянием некоторых устройств, используя подход, основанный на событиях. Проблема в том, что некоторые из устройств не отправляют свои статусы с помощью событий и требуют, чтобы приложение опросило данные.
Решение заключается в использовании таймера и опросе устройств. Если бы какое-либо изменение было обнаружено, мы бы подняли аналогичное событие из существующих.
Проблема в том, что устаревший код далек от потокобезопасности, и его адаптация будет довольно квестом.
Возможно, есть лучший подход.
Зачем нужно выполнять на основной теме? Это просто, что вы хотите, чтобы основной поток ожидал, пока после того, как истекшее событие не сработало? – Sacrilege
Какова ваша основная тема?WinFoems, WPF или, может быть, часть сервиса? –
Это часть сервиса. – TiagoOliveira