|
Timer.Elapsed vs Thread.sleep vs Что-то еще? И управление потоками
|
|||
---|---|---|---|
#18+
Доброго времени суток! Прошу помощи уважаемого сообщества. Суть: пишу относительно небольшое приложение для получения информации с контроллера Siemens S400. Приложение должно с определенным интервалом времени "снимать" показания с разных датчиков. Для связи с контроллером использую библиотеку S7.Net, и тут главная загвоздка - библиотека не умеет использовать нескольких одновременных подключений. а значит опрос нужно проводить последовательно. Для понимания логики работы кратко опишу алгоритм одного из элементов: 1) С интервалом 1сек считываем показания с датчика наличия (D1), на входе в зону. 2) Как только получили true, останавливаем опрос текущего датчика, и начинаем считывать с периодом показания с двух других (D2 - датчик наличия на выходе, период опроса 1сек, D3 - текущее давление, период опроса 100мс). 3) Пока D2 не вернет true, значения с D3 собираем в массив, затем математика. 4) Запускаем весь цикл по новой. Изначально попробовал сделать на System.Timers.timer'ах: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
Модератор: Учимся использовать тэги оформления кода - FAQ И вроде все работает, за исключение Большого НО : из за Timer.AutoReset = true создается куча потоков, которые не получается убить Timer.stop(); Timer.Dispose(); как я тут только не пробовал... OutOfMemoryExeption В результате Timer.AutoReset поставил в false, и вызывал Timer.Start(). Плодов не принесло. Как правильно организовать подобную задачу на таймерах? Или создавать новые потоки каждый раз, потом Thread.Sleep(), а затем убивать их? Кстаи, Thread.CurrentThread.Abort() у меня почему-то тоже не получилось. Или использовать другое решение? Есть добрые люди которые смогут подсказать? ЗыСы: многопоточность для меня очень новое понятие. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 15:00 |
|
Timer.Elapsed vs Thread.sleep vs Что-то еще? И управление потоками
|
|||
---|---|---|---|
#18+
mozgenмногопоточность для меня очень новое понятие.сначала докажи что потоки нужны тут позарез. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 15:06 |
|
Timer.Elapsed vs Thread.sleep vs Что-то еще? И управление потоками
|
|||
---|---|---|---|
#18+
лучше Task.Delay() ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 16:05 |
|
Timer.Elapsed vs Thread.sleep vs Что-то еще? И управление потоками
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 06:43 |
|
Timer.Elapsed vs Thread.sleep vs Что-то еще? И управление потоками
|
|||
---|---|---|---|
#18+
Petro123, Докажи, что не нужны. Офтоп: Дежуришь ты здесь что ли. Как новая тема, так твой ответ первый, причем с минимумом полезной информации. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 07:53 |
|
Timer.Elapsed vs Thread.sleep vs Что-то еще? И управление потоками
|
|||
---|---|---|---|
#18+
mozgen, Вот смотри. Теги оформления сообщения ставить тебе в лом. Тег src ты не применяешь. Отступов в коде нет. Тег QUOTE тоже. Это говорит о том, что в голове и в коде у тебя такой же бардак. Если для тебя многопоточность новое понятие, то учись и не показывай свой ЧСВ. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 09:10 |
|
Timer.Elapsed vs Thread.sleep vs Что-то еще? И управление потоками
|
|||
---|---|---|---|
#18+
Petro123, Вот я и говорю, ничего дельного. Если по теме нечего сказать, то что ты тут делаешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 09:27 |
|
Timer.Elapsed vs Thread.sleep vs Что-то еще? И управление потоками
|
|||
---|---|---|---|
#18+
mozgenДокажи, что не нужны.а ты умную вещь написал? Априори код пишется без uses Thread. Это не надо доказывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 09:45 |
|
Timer.Elapsed vs Thread.sleep vs Что-то еще? И управление потоками
|
|||
---|---|---|---|
#18+
mozgenPetro123, Вот я и говорю, ничего дельного. Если по теме нечего сказать, то что ты тут делаешь? А Вы на гифку в его профиле посмотрите: Вот это и делает... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 09:49 |
|
Timer.Elapsed vs Thread.sleep vs Что-то еще? И управление потоками
|
|||
---|---|---|---|
#18+
Два кодировщика без пробелов уже нашли друг друга. Переписываются). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 09:52 |
|
Timer.Elapsed vs Thread.sleep vs Что-то еще? И управление потоками
|
|||
---|---|---|---|
#18+
mozgen, а я бы копнул в сторону Functional Reactive Programming ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 09:52 |
|
Timer.Elapsed vs Thread.sleep vs Что-то еще? И управление потоками
|
|||
---|---|---|---|
#18+
Petro123Два кодировщика без пробелов уже нашли друг друга. Переписываются). Смени прошивку уже, остроумия не хватает ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 09:53 |
|
Timer.Elapsed vs Thread.sleep vs Что-то еще? И управление потоками
|
|||
---|---|---|---|
#18+
skyANA, Не трудись печатать. Фильтр стоит)) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2019, 09:55 |
|
|
start [/forum/topic.php?fid=20&msg=39800332&tid=1399001]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
141ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 266ms |
0 / 0 |