Поделиться через


WindowPattern.WaitForInputIdle(Int32) Метод

Определение

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

public:
 bool WaitForInputIdle(int milliseconds);
public bool WaitForInputIdle (int milliseconds);
member this.WaitForInputIdle : int -> bool
Public Function WaitForInputIdle (milliseconds As Integer) As Boolean

Параметры

milliseconds
Int32

Время ожидания перехода связанного процесса в состояние бездействия в миллисекундах. Максимальное значение — Int32.MaxValue.

Возвращаемое значение

Значение true, если окно перешло в состояние бездействия; значение false в случае истечения времени ожидания.

Исключения

Переданный параметр не является допустимым числом.

Примеры

В следующем примере WindowPattern шаблон элемента управления получается из AutomationElement и использует WaitForInputIdle для подтверждения готовности элемента к взаимодействию с пользователем в течение разумного периода времени.

///--------------------------------------------------------------------
/// <summary>
/// Obtains a WindowPattern control pattern from an automation element.
/// </summary>
/// <param name="targetControl">
/// The automation element of interest.
/// </param>
/// <returns>
/// A WindowPattern object.
/// </returns>
///--------------------------------------------------------------------
private WindowPattern GetWindowPattern(AutomationElement targetControl)
{
    WindowPattern windowPattern = null;

    try
    {
        windowPattern =
            targetControl.GetCurrentPattern(WindowPattern.Pattern)
            as WindowPattern;
    }
    catch (InvalidOperationException)
    {
        // object doesn't support the WindowPattern control pattern
        return null;
    }
    // Make sure the element is usable.
    if (false == windowPattern.WaitForInputIdle(10000))
    {
        // Object not responding in a timely manner
        return null;
    }
    return windowPattern;
}
'''------------------------------------------------------------------------
''' <summary>
''' Obtains a WindowPattern control pattern from an automation element.
''' </summary>
''' <param name="targetControl">
''' The automation element of interest.
''' </param>
''' <returns>
''' A WindowPattern object.
''' </returns>
'''------------------------------------------------------------------------
Private Function GetWindowPattern(ByVal targetControl As AutomationElement) As WindowPattern
    Dim windowPattern As WindowPattern = Nothing

    Try
        windowPattern = DirectCast( _
        targetControl.GetCurrentPattern(windowPattern.Pattern), _
        WindowPattern)
    Catch
        ' object doesn't support the WindowPattern control pattern
        Return Nothing
    End Try
    ' Make sure the element is usable.
    If False = windowPattern.WaitForInputIdle(10000) Then
        ' Object not responding in a timely manner
        Return Nothing
    End If
    Return windowPattern
End Function 'GetWindowPattern

Комментарии

Этот метод обычно используется в сочетании с обработкой WindowOpenedEvent.

Реализация зависит от базовой платформы приложений; Поэтому этот метод может вернуться через некоторое время после того, как окно будет готово к вводу данных пользователем. Вызывающий код не должен полагаться на этот метод, чтобы точно определить, когда окно неактивно.

Применяется к