Суть такова.
Есть устройство с библиотекой.
Его надо периодически опрашивать.
Есть регламентные задачи, которые с этим справляются. Они в фоне посылают те или иные команды с разной периодичностью.
Однако, пользователь может самостоятельно дать команду устройству. В этот момент нужно приостановить выполнение периодического опроса и фоновых задач.
Заметил, что если этого не сделать, то команда пользователя может пойти одновременно с командой из периодического опроса, что вызывает глубокий ступор библиотеки.
Вопрос. Возможно ли программно приостановить или временно заблокировать выполнение регламентных или фоновых задач.
(1) Пока домой ехал, тоже об этом подумал. Введу глобальную переменную-флаг.
Каждая команда будет устанавливать флаг выполнения и снимать по окончании. Это будет полезно и для регламентных. Вдруг пересекутся.
Беда в том, что все работает асинхронно. Но команда пользователя должна идти синхронно, т.к. по выполнении команды заносятся данные в регистры. Его, блин, в очередь не поставишь. Он приоритетный.
(3)сегодня уже спекся.
завтра выйду, обрисую ситуацию подробно.
Полагаю, флага должно хватить.
Однако, хочется, по желанию, остановить - запустить регламент и фон.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан