События PIX Studio

addewyd@

Member
Каким образом можно отловить в активности нажатие кнопок "пауза", "стоп" итд?
 

addewyd@

Member
void Execute(int) {
// вот тут можно каким-либо образом выяснить, нажали ли кнопка стоп в студии?
......
}

или каким-то образом добавить обработчик события?

Есть же где-то ExexutionManager.EventHandler....
 

addewyd@

Member

Если нажать кнопку "Стоп", тред продолжает работать. Надо прибить.
Иначе после закрытия студии процесс остаётся в фоне и продолжает долбить.
На кнопку "пауза" желательно тоже останавливать.
 

Кирилл Серов

Administrator
Команда форума
Добрый день!

Функционала прямых подписок на события нет, но есть механизм, который можно попробовать использовать: в Activity есть 2 поля CancellationToken: поле CancellationToken - отвечает за то, что пользователь запросил отмену работы робота (к примеру, нажал "Стоп" в Студии) и поле PauseToken - отвечает за то, что пользователь запросил паузу.
 

addewyd@

Member
Пробовал.

CancellationToken.IsCancellationRequested всегда false

В Execute само собой, при нажатии стоп execute уже не вызывается.
если передать каким-либо образом в ThreadProc — тоже всегда false

С pause аналогично

УПД:
Извините, неправильно пробовал. Работает.


public /*static*/ void Proc()
{
string fn = RegisterThread();
while (run)
{
if(ct.IsCancellationRequested)
{
run = false;
log("Cancel request");
break;

 
Последнее редактирование:
Верх