Exportar (0) Imprimir
Expandir todo
Este tema aún no ha recibido ninguna valoración - Valorar este tema

ThreadPool.UnsafeRegisterWaitForSingleObject (Método) (WaitHandle, WaitOrTimerCallback, Object, TimeSpan, Boolean)

Registra un delegado que va a esperar a una clase WaitHandle, especificando un valor de TimeSpan para el tiempo de espera.

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

public static RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (
	WaitHandle waitObject,
	WaitOrTimerCallback callBack,
	Object state,
	TimeSpan timeout,
	bool executeOnlyOnce
)
public static RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (
	WaitHandle waitObject, 
	WaitOrTimerCallback callBack, 
	Object state, 
	TimeSpan timeout, 
	boolean executeOnlyOnce
)
public static function UnsafeRegisterWaitForSingleObject (
	waitObject : WaitHandle, 
	callBack : WaitOrTimerCallback, 
	state : Object, 
	timeout : TimeSpan, 
	executeOnlyOnce : boolean
) : RegisteredWaitHandle
No aplicable.

Parámetros

waitObject

WaitHandle que se va a registrar. Utilice un WaitHandle diferente de Mutex.

callBack

Delegado al que se va a llamar cuando el parámetro waitObject esté señalado.

state

Objeto que se pasa al delegado.

timeout

Tiempo de espera representado por TimeSpan. Si timeout es cero, la función comprueba el estado del objeto y se devuelve inmediatamente. Si timeout es -1, el intervalo de tiempo de espera de la función nunca transcurre.

executeOnlyOnce

true para indicar que el subproceso no va a esperar más en el parámetro waitObject después de haber llamado al delegado; false para indicar que el temporizador se restablece cada vez que se completa la operación de espera, hasta que se anula el registro de la espera.

Valor devuelto

Objeto RegisteredWaitHandle que puede utilizarse para cancelar la operación de espera registrada.
Tipo de excepciónCondición

ArgumentOutOfRangeException

El parámetro timeout es menor que -1.

NotSupportedException

El parámetro timeout es mayor que Int32.MaxValue.

SecurityException

El llamador no dispone del permiso requerido.

Esta versión de RegisterWaitForSingleObject no propaga la pila de llamadas al subproceso de trabajo. Esto permite que el código pierda la pila de llamadas e incremente de este modo sus privilegios de seguridad.

Nota de precauciónPrecaución:

La utilización de UnsafeRegisterWaitForSingleObject podría crear un problema de seguridad involuntariamente. La seguridad de acceso al código basa las comprobaciones de permisos en los permisos de todos los llamadores de la pila. Si se coloca trabajo en cola en un subproceso de grupo de subprocesos mediante UnsafeRegisterWaitForSingleObject, la pila del subproceso de grupo de subprocesos no tendrá el contexto de los llamadores reales. Un código malintencionado podría aprovechar esta circunstancia para evitar las comprobaciones de permisos.

El uso de Mutex para waitObject no proporciona la exclusión mutua de devoluciones de llamada porque la API de Win32 subyacente utiliza el indicador WT_EXECUTEDEFAULT predeterminado, por lo que cada devolución de llamada se envía en un subproceso del grupo de subprocesos independiente.

Windows 98, Windows 2000 Service Pack 4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0, 1.1, 1.0
¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.