Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

WaitHandle (Clase)

Encapsula los objetos específicos del sistema operativo que esperan obtener un acceso exclusivo a los recursos compartidos.

Espacio de nombres:  System.Threading
Ensamblado:  mscorlib (en mscorlib.dll)

'Declaración
<ComVisibleAttribute(True)> _
Public MustInherit Class WaitHandle _
	Inherits MarshalByRefObject _
	Implements IDisposable

El tipo WaitHandle expone los siguientes miembros.

  NombreDescripción
Método protegidoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsWaitHandleInicializa una nueva instancia de la clase WaitHandle.
Arriba

  NombreDescripción
Propiedad públicaCompatible con XNA FrameworkHandle Obsoleto. Obtiene o establece el identificador del sistema operativo nativo.
Propiedad públicaSafeWaitHandleObtiene o establece el identificador del sistema operativo nativo.
Arriba

  NombreDescripción
Método públicoCompatible con XNA FrameworkClose Cuando se sobrescribe en una clase derivada, libera todos los recursos mantenidos por el WaitHandle actual.
Método públicoCreateObjRefCrea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto. (Se hereda de MarshalByRefObject).
Método públicoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsDisposeLibera todos los recursos usados por la instancia actual de la clase WaitHandle.
Método protegidoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsDispose(Boolean)Cuando se reemplaza en una clase derivada, libera los recursos no administrados utilizados por WaitHandle y, de forma opcional, libera los recursos administrados.
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsEquals(Object)Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object).
Método protegidoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsFinalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetHashCode Sirve como una función hash para un tipo en particular. (Se hereda de Object).
Método públicoGetLifetimeServiceRecupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia. (Se hereda de MarshalByRefObject).
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoInitializeLifetimeServiceObtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia. (Se hereda de MarshalByRefObject).
Método protegidoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método protegidoMemberwiseClone(Boolean)Crea una copia superficial del objeto MarshalByRefObject actual. (Se hereda de MarshalByRefObject).
Método públicoMiembro estáticoSignalAndWait(WaitHandle, WaitHandle)Señala un WaitHandle y espera en otro.
Método públicoMiembro estáticoSignalAndWait(WaitHandle, WaitHandle, Int32, Boolean)Señala una clase WaitHandle y espera en otra, determinando un intervalo de tiempo de espera como entero con signo de 32 bits y especificando si se sale del dominio de sincronización para el contexto antes de entrar en la espera.
Método públicoMiembro estáticoSignalAndWait(WaitHandle, WaitHandle, TimeSpan, Boolean)Señala una clase WaitHandle y espera en otra, determinando el intervalo de tiempo de espera como TimeSpan y especificando si se sale del dominio de sincronización para el contexto antes de entrar en la espera.
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Método públicoMiembro estáticoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsWaitAll(WaitHandle())Espera a que todos los elementos de la matriz especificada reciban una señal.
Método públicoMiembro estáticoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsWaitAll(WaitHandle(), Int32)Espera a que todos los elementos de la matriz especificada reciban una señal, utilizando un valor Int32 para especificar el intervalo de tiempo.
Método públicoMiembro estáticoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsWaitAll(WaitHandle(), TimeSpan)Espera a que todos los elementos de la matriz especificada reciban una señal, utilizando un valor TimeSpan para especificar el intervalo de tiempo.
Método públicoMiembro estáticoWaitAll(WaitHandle(), Int32, Boolean)Espera a que todos los elementos de la matriz especificada reciban una señal, utilizando un valor Int32 para especificar el intervalo de tiempo y especificar si se va a salir del dominio de sincronización antes de la espera.
Método públicoMiembro estáticoWaitAll(WaitHandle(), TimeSpan, Boolean)Espera a que todos los elementos de la matriz especificada reciban una señal, utilizando un valor TimeSpan para especificar el intervalo de tiempo y especificar si se va a salir del dominio de sincronización antes de la espera.
Método públicoMiembro estáticoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsWaitAny(WaitHandle())Espera a que cualquiera de los elementos de la matriz especificada reciba una señal.
Método públicoMiembro estáticoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsWaitAny(WaitHandle(), Int32)Espera a que cualquiera de los elementos de la matriz especificada reciba una señal, utilizando un entero de 32 bits con signo para especificar el intervalo de tiempo.
Método públicoMiembro estáticoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsWaitAny(WaitHandle(), TimeSpan)Espera a que cualquiera de los elementos de la matriz especificada reciban una señal, utilizando un TimeSpan para especificar el intervalo de tiempo.
Método públicoMiembro estáticoWaitAny(WaitHandle(), Int32, Boolean)Espera a que cualquiera de los elementos de la matriz especificada reciba una señal, utilizando un entero de 32 bits con signo para especificar el intervalo de tiempo y especificar si se va a salir del dominio de sincronización antes de la espera.
Método públicoMiembro estáticoWaitAny(WaitHandle(), TimeSpan, Boolean)Espera a que cualquiera de los elementos de la matriz especificada reciba una señal, utilizando un TimeSpan para especificar el intervalo de tiempo y especificar si se va a salir del dominio de sincronización antes de la espera.
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsWaitOneBloquea el subproceso actual hasta que el objeto WaitHandle actual recibe una señal.
Método públicoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsWaitOne(Int32)Bloquea el subproceso actual hasta que el objeto WaitHandle actual recibe una señal, utilizando un entero de 32 bits con signo para especificar el intervalo de tiempo.
Método públicoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsWaitOne(TimeSpan)Bloquea el subproceso actual hasta que la instancia actual recibe una señal, utilizando TimeSpan para especificar el intervalo de tiempo.
Método públicoCompatible con XNA FrameworkWaitOne(Int32, Boolean)Bloquea el subproceso actual hasta que el objeto WaitHandle actual recibe una señal, utilizando un entero de 32 bits con signo para especificar el intervalo de tiempo y especificando si hay que salir del dominio de sincronización antes de la espera.
Método públicoWaitOne(TimeSpan, Boolean)Bloquea el subproceso actual hasta que la instancia actual recibe una señal, utilizando TimeSpan para especificar el intervalo de tiempo y especificando si hay que abandonar el dominio de sincronización antes de la espera.
Arriba

  NombreDescripción
Campo protegidoMiembro estáticoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsInvalidHandleRepresenta un identificador del sistema operativo nativo no válido. Este campo es de sólo lectura.
Campo públicoMiembro estáticoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsWaitTimeoutIndica que una operación WaitAny ha superado el tiempo de espera antes de que se señalara un marcador de espera. Este campo es constante.
Arriba

  NombreDescripción
Implementación explícita de interfacesMétodo privadoCompatible con XNA FrameworkIDisposable.DisposeInfraestructura. Libera todos los recursos utilizados por WaitHandle.
Arriba

Esta clase se utiliza normalmente como una clase base para los objetos de sincronización. Las clases que se derivan de WaitHandle definen un mecanismo de señalización para indicar que están tomando o liberando un acceso a un recurso compartido, pero utilizan los métodos WaitHandle heredados para bloquearse mientras esperan el acceso a los recursos compartidos.

Utilice los métodos estáticos de esta clase para bloquear un subproceso hasta que uno o más objetos de sincronización reciban una señal.

WaitHandle implementa el modelo Dispose. Vea Implementing Finalize and Dispose to Clean Up Unmanaged Resources. Si deriva de WaitHandle, utilice la propiedad SafeWaitHandle para almacenar su identificador del sistema operativo nativo. No es necesario reemplazar el método protegido Dispose a menos que utilice recursos no administrados adicionales.

En el ejemplo de código siguiente se muestra cómo dos subprocesos pueden hacer tareas en segundo plano mientras el subproceso principal espera a que finalicen las tareas utilizando los métodos estáticos WaitAny y WaitAll de la clase WaitHandle.


Imports System
Imports System.Threading

NotInheritable Public Class App
    ' Define an array with two AutoResetEvent WaitHandles.
    Private Shared waitHandles() As WaitHandle = _
        {New AutoResetEvent(False), New AutoResetEvent(False)}

    ' Define a random number generator for testing.
    Private Shared r As New Random()

    <MTAThreadAttribute> _
    Public Shared Sub Main() 
        ' Queue two tasks on two different threads; 
        ' wait until all tasks are completed.
        Dim dt As DateTime = DateTime.Now
        Console.WriteLine("Main thread is waiting for BOTH tasks to complete.")
        ThreadPool.QueueUserWorkItem(AddressOf DoTask, waitHandles(0))
        ThreadPool.QueueUserWorkItem(AddressOf DoTask, waitHandles(1))
        WaitHandle.WaitAll(waitHandles)
        ' The time shown below should match the longest task.
        Console.WriteLine("Both tasks are completed (time waited={0})", _
            (DateTime.Now - dt).TotalMilliseconds)

        ' Queue up two tasks on two different threads; 
        ' wait until any tasks are completed.
        dt = DateTime.Now
        Console.WriteLine()
        Console.WriteLine("The main thread is waiting for either task to complete.")
        ThreadPool.QueueUserWorkItem(AddressOf DoTask, waitHandles(0))
        ThreadPool.QueueUserWorkItem(AddressOf DoTask, waitHandles(1))
        Dim index As Integer = WaitHandle.WaitAny(waitHandles)
        ' The time shown below should match the shortest task.
        Console.WriteLine("Task {0} finished first (time waited={1}).", _
            index + 1,(DateTime.Now - dt).TotalMilliseconds)

    End Sub 'Main

    Shared Sub DoTask(ByVal state As [Object]) 
        Dim are As AutoResetEvent = CType(state, AutoResetEvent)
        Dim time As Integer = 1000 * r.Next(2, 10)
        Console.WriteLine("Performing a task for {0} milliseconds.", time)
        Thread.Sleep(time)
        are.Set()

    End Sub 'DoTask
End Class 'App

' This code produces output similar to the following:
'
'  Main thread is waiting for BOTH tasks to complete.
'  Performing a task for 7000 milliseconds.
'  Performing a task for 4000 milliseconds.
'  Both tasks are completed (time waited=7064.8052)
' 
'  The main thread is waiting for either task to complete.
'  Performing a task for 2000 milliseconds.
'  Performing a task for 2000 milliseconds.
'  Task 1 finished first (time waited=2000.6528).


.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Este tipo es seguro para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft