WindowPattern.WaitForInputIdle(Int32) Método

Definición

Hace que el código de llamada bloquee durante el tiempo especificado o hasta que el proceso asociado entre en un estado inactivo, lo que se complete primero.

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

Parámetros

milliseconds
Int32

Cantidad de tiempo, en milisegundos, para esperar a que el proceso asociado se vuelva inactivo. El máximo es Int32.MaxValue.

Devoluciones

true si la ventana ha entrado en estado inactivo; false si se ha agotado el tiempo de espera.

Excepciones

El parámetro pasado no es un número válido.

Ejemplos

En el ejemplo siguiente, se obtiene un WindowPattern patrón de control de AutomationElement y usa WaitForInputIdle para confirmar que el elemento está listo para la interacción del usuario dentro de un período de tiempo razonable.

///--------------------------------------------------------------------
/// <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

Comentarios

Este método se usa normalmente junto con el control de .WindowOpenedEvent

La implementación depende del marco de aplicación subyacente; por lo tanto, este método puede devolver algún tiempo después de que la ventana esté lista para la entrada del usuario. El código de llamada no debe basarse en este método para determinar exactamente cuándo la ventana se ha vuelto inactiva.

Se aplica a