Windows Automaton - InvokePattern блокирует выполнение, пока все не завершится - PullRequest
0 голосов
/ 21 декабря 2018

Я столкнулся с таким поведением в моем приложении автоматизации: когда я «нажимаю» кнопку, вызывая метод InvokePattern.Invoke(), все останавливается, пока не завершится обработчик события click внутри автоматизированного приложения.

Пока этоможет сделать что-то простое (например, мне не нужно писать тонны кода, чтобы дождаться исчезновения диалогового окна с индикатором выполнения, потому что я просто возвращаю элемент управления, когда все сделано), но я больше ничего не могу сделать,Он даже блокирует доступ к API автоматизации в другом потоке, где он продолжается после того, как обработчик щелчков сделан.

Это вызывает проблемы, когда обработчик щелчков в автоматизированном приложении открывает модальное диалоговое окно, тогда я ничего не могу сделатьдоступ к приложению через API автоматизации блокируется до тех пор, пока диалоговое окно не будет закрыто вручную.

Кто-нибудь как-то решил это и может мне помочь?

Спасибо, Карел

PS: Ссылка source говорит следующее:

Request that the control initiate its action.
/// Should return immediately without blocking.
/// There is no way to determine what happened, when it happend, or whether
/// anything happened at all
public void Invoke() { ... }

Редактировать: Отлично работает при автоматизации приложения Windows Notepad, которое не является приложением .NET.И он не работает для клона блокнота (приложение C # WinForms).

...