|
Программная остановка фоновых и регламентных заданий |
☑ |
0
abuca
04.03.17
✎
21:27
|
Суть такова.
Есть устройство с библиотекой.
Его надо периодически опрашивать.
Есть регламентные задачи, которые с этим справляются. Они в фоне посылают те или иные команды с разной периодичностью.
Однако, пользователь может самостоятельно дать команду устройству. В этот момент нужно приостановить выполнение периодического опроса и фоновых задач.
Заметил, что если этого не сделать, то команда пользователя может пойти одновременно с командой из периодического опроса, что вызывает глубокий ступор библиотеки.
Вопрос. Возможно ли программно приостановить или временно заблокировать выполнение регламентных или фоновых задач.
|
|
1
Garykom
гуру
04.03.17
✎
21:54
|
Запрети "пользователь может самостоятельно дать команду устройству", в очередь су...ны дети в очередь
|
|
2
abuca
04.03.17
✎
21:57
|
(1) Пока домой ехал, тоже об этом подумал. Введу глобальную переменную-флаг.
Каждая команда будет устанавливать флаг выполнения и снимать по окончании. Это будет полезно и для регламентных. Вдруг пересекутся.
Беда в том, что все работает асинхронно. Но команда пользователя должна идти синхронно, т.к. по выполнении команды заносятся данные в регистры. Его, блин, в очередь не поставишь. Он приоритетный.
|
|
3
Garykom
гуру
04.03.17
✎
22:04
|
мало данных/инфы чтобы еще советовать
|
|
4
abuca
04.03.17
✎
22:42
|
(3)сегодня уже спекся.
завтра выйду, обрисую ситуацию подробно.
Полагаю, флага должно хватить.
Однако, хочется, по желанию, остановить - запустить регламент и фон.
|
|