|
Заблокирован
|
|
Как остановить thread.Sleep по клику20.06.2014, 07:16. Показов 4124. Ответов 30
Метки нет (Все метки)
дело такое - опрашиваю ком порты. есть функция и класс, отвечающие за разные методы.
приходится ставить thread.sleep() чтобы получить значение с ком порта, потому что сразу они не приходят. так вот - все это дело крутится в таймере. пытаюсь выключить таймер - он мне ругается. как остановить thread.sleep по клику?
0
|
|
| 20.06.2014, 07:16 | |
|
Ответы с готовыми решениями:
30
Thread.Sleep в главном потоке или как сделать нормальную задержку Как избежать блокировки основного UI потока при вызове Thread.Sleep в вспомогательном потоке? ProgressBar и Thread.Sleep |
|
1 / 1 / 0
Регистрация: 20.06.2014
Сообщений: 17
|
|||||||
| 20.06.2014, 10:10 | |||||||
|
Добавьте перед созданием потока строку:
Я предполагаю, что дело в том, что к моменту запуска потока переменная цикла it уже достигает значения 2. Следовательно, необходимо зафиксировать значение it в переменную buf_it и использовать зафиксированное значение.
0
|
|||||||
|
Заблокирован
|
|||||||||||
| 20.06.2014, 10:29 [ТС] | |||||||||||
|
вот так сработало
не видя вашего поста сам догадался))) Добавлено через 1 минуту может и с ком портом подскажешь как сделать? Добавлено через 52 секунды там вот такое
рано радовался Failed to stop service. System.InvalidOperationException: Collection was modified; enumeration operation may not execute. at System.ThrowHelper.ThrowInvalidOperation Exception(ExceptionResource resource) at System.Collections.Generic.List`1.Enumer ator.MoveNextRare() at System.Collections.Generic.List`1.Enumer ator.MoveNext() at ServiceUniOPc.Service1.OnStop() at System.ServiceProcess.ServiceBase.Deferr edStop()
0
|
|||||||||||
|
1 / 1 / 0
Регистрация: 20.06.2014
Сообщений: 17
|
||
| 20.06.2014, 10:37 | ||
|
В процессе перебора коллекции циклом foreach нельзя ее менять, однако один из потоков пытается удалить себя из коллекции запущенных потоков. Можно изменить цикл foreach на for и пробегать коллекцию потоков с конца с использованием try ... catch, но это приведет к завершению нормально работающих потоков. Тут необходимо задержать вызов метода OnStop(), либо в самом методе предусмотреть вариант изменения коллекции потоков. Дальнейшие модификации программы приведут к ее чрезмерному усложнению. Я бы посмотрел что ответит insite2012, мне кажется он предложит что-то более дельное.
0
|
||
|
|
|||||||||||
| 20.06.2014, 11:00 | |||||||||||
|
SoulMicro, я уже почти доделал класс. Сейчас покажу...
Добавлено через 9 минут DoomUnit, ну вот как-то так. Естественно, это надо подгонять под ваши запросы. Вот сам класс для прослушивания всех имеющихся СОМ портов
Естественно, передаваемые данные-это мой вариант, под то устройство что у меня есть и от которого я могу принять ответ. Вы измените под свое.
0
|
|||||||||||
|
Заблокирован
|
||||||
| 23.06.2014, 07:44 [ТС] | ||||||
|
так а если под конкретный пример. послать #10\r , COM2
Добавлено через 32 минуты пишу так
0
|
||||||
|
|
|
| 23.06.2014, 08:15 | |
|
DoomUnit, а вы уверены, что на такой запрос должен быть ответ? Если должен, какое количество байт должно быть в ответе? Подставьте это число в параметр метода приема (4 строка в приведенном вами участке кода, там стоит число 8) и посмотрите.
0
|
|
|
Заблокирован
|
||||||
| 23.06.2014, 11:17 [ТС] | ||||||
|
в общем сделал таким способом
Кликните здесь для просмотра всего текста
Добавлено через 51 минуту млин как бы еще по образу и подобию tcp бы сделать
0
|
||||||
|
Заблокирован
|
|
| 23.06.2014, 11:33 [ТС] | |
|
к чему это?
0
|
|
|
Заблокирован
|
||||||
| 23.06.2014, 14:40 [ТС] | ||||||
|
а почему нет?
Добавлено через 2 часа 14 минут tcp сделал так. может кому понадобится. может кто подскажет Кликните здесь для просмотра всего текста
0
|
||||||
| 23.06.2014, 14:40 | |
|
Thread.Sleep совместно с BeginInvoke Почему при Thread.Abort закрывается программа? Как остановить поток? Аналог Thread.Sleep Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
[golang] Pipeline
alhaos 08.06.2026
Pipeline
Pipeline — паттерн конкурентной обработки данных в Go.
Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
|
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь
lIs4oanZS9Y
|
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу.
До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|
|
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения
Продолжаю серию постов о дискретно-событийной модели рабочего. . .
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|