Я пишу клиент автоматизации пользовательского интерфейса, и поэтому у меня нет доступа к типичным методам, как форма загружена, и т.д.Как сказать, если приложение занято
В основном я хочу способ определить, если тестируемое приложение работает или находится в режиме ожидания.
Я попытался это:
Process[] localByName = Process.GetProcessesByName("AUT");
localByName[0].WaitForInputIdle();
Это не блок, хотя ясно, что приложение работает.
Я ищу верный способ оплаты, чтобы определить, занято ли приложение или нет. В этом случае это приложение .net.
Заранее спасибо.
Как вы определяете себя как? Я не думаю, что у меня есть ответ, но этот вопрос приходит на ум, когда мы думаем о многопоточных приложениях, которые могут работать на разных потоках все время. Я бы предположил, что вы имеете в виду, что поток пользовательского интерфейса не заблокирован из вашего образца кода. Это правильное предположение? –
@Steve, приложение многопоточное, эти потоки являются дочерними процессами. Я идеально ищут управляемый/неуправляемый способ определить, все ли выполнено. –
Если вы пытаетесь автоматизировать конкретное приложение, а не создавать приложение общего назначения, возможно, назовем рабочие потоки в вашем коде и затем запросить их существование. https://msdn.microsoft.com/en-us/library/581hfskb.aspx –