Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как остановить thread.Sleep по клику

93K
20 июня 2014 года
Николай Зуев
1 / / 20.06.2014
дело такое - опрашиваю ком порты. есть функция и класс, отвечающие за разные методы.
приходится ставить thread.sleep() чтобы получить значение с ком порта, потому что сразу они не приходят.
так вот - все это дело крутится в таймере.
пытаюсь выключить таймер - он мне ругается.
как остановить thread.sleep по клику?
  • Нельзя ли попонятней? от sadovoya, 20 июня 2014 года
14K
23 июня 2014 года
Ilya81
2 / / 05.03.2007
Thread.Sleep вроде никак. Если версия Framework 4 и больше, можно использовать Task.Delay, там поддерживается CancellationToken.
1.8K
23 июня 2014 года
Arkady
153 / / 18.12.2007
Смотря чем ты пользуешься. thread.sleep() - похоже на boost-овые потоки, тогда тебе надо использовать waitable ожидание condition. Когда выход происходит или по истечении времени, или по наструплении события.
Если можешь использовать WinAPI, то та же WaitForSingleObject умеет ожидать события лишь какое-то время. А после выхода проверяй, вышел ты по таймауту или по событию, если по событию - закрывай все. Событие дергай, соответственно, когда нужно завершить работу. Собственно, все слипы внутри программы должны быть заменены на такие механизмы, завязанные на событии "закрытие программы".
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог