Exportar (0) Imprimir
Expandir todo

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

Registra un delegado que va a esperar a una clase WaitHandle, especificando un entero de 64 bits con signo para representar el tiempo de espera en milisegundos.

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

public static RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (
	WaitHandle waitObject,
	WaitOrTimerCallback callBack,
	Object state,
	long millisecondsTimeOutInterval,
	bool executeOnlyOnce
)
public static RegisteredWaitHandle UnsafeRegisterWaitForSingleObject (
	WaitHandle waitObject, 
	WaitOrTimerCallback callBack, 
	Object state, 
	long millisecondsTimeOutInterval, 
	boolean executeOnlyOnce
)
public static function UnsafeRegisterWaitForSingleObject (
	waitObject : WaitHandle, 
	callBack : WaitOrTimerCallback, 
	state : Object, 
	millisecondsTimeOutInterval : long, 
	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.

millisecondsTimeOutInterval

Tiempo de espera en milisegundos. Si el parámetro millisecondsTimeOutInterval es cero (0), la función comprueba el estado del objeto y se devuelve inmediatamente. Si millisecondsTimeOutInterval 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 millisecondsTimeOutInterval es menor que -1.

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

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft