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

TaskScheduler.TryExecuteTaskInline (Método)

Determina si el objeto Task especificado puede ejecutarse sincrónicamente en esta llamada y, en caso afirmativo, lo ejecuta.

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

protected abstract bool TryExecuteTaskInline(
	Task task,
	bool taskWasPreviouslyQueued
)

Parámetros

task
Tipo: System.Threading.Tasks.Task
Objeto Task que se va a ejecutar.
taskWasPreviouslyQueued
Tipo: System.Boolean
Valor booleano que indica si la tarea se ha puesto anteriormente en la cola. Si este parámetro es True, la tarea se ha puesto en la cola (programado) anteriormente; si su valor es False, la tarea no se ha puesto anteriormente en la cola y esta llamada se realiza para ejecutar la tarea insertada sin ponerla en la cola.

Valor devuelto

Tipo: System.Boolean
Valor booleano que indica si se ejecutó la tarea alineada.

ExcepciónCondición
ArgumentNullException

El argumento de task es nulo.

InvalidOperationException

La task ya se ejecutó.

Una clase derivada de TaskScheduler implementa esta función para admitir la ejecución de código de una tarea insertada en un subproceso que inicia una espera en el objeto de esa tarea. La ejecución de código insertado es opcional y la solicitud se puede rechazar devolviendo false. Sin embargo, cuantas más tareas se puedan insertar, mejor escalará el programador. De hecho, un programador que inserte muy pocas tareas puede sufrir interbloqueos. Una implementación apropiada debería asegurar que una solicitud que se ejecute bajo las directivas garantizadas por el programador pueda insertar código de función correctamente. Por ejemplo, si un programador utiliza un subproceso dedicado para ejecutar tareas, cualquier solicitud de insertar código de ese subproceso debería realizarse correctamente.

Si un programador decide llevar a cabo la ejecución del código insertado, debería hacerlo llamando al método base TryExecuteTask de TaskScheduler con el objeto de tarea proporcionado, propagando el valor devuelto. También puede ser adecuado que el programador quite una tarea insertada de sus estructuras de datos internas si decide responder a la solicitud de insertar el código de la función. Tenga en cuenta, sin embargo, que bajo algunas circunstancias puede que se pida a un programador que inserte una tarea que no se proporcionó previamente con el método QueueTask.

El programador derivado es responsable de asegurarse de que el subproceso que realiza la llamada es conveniente para ejecutar la tarea determinada en lo referente a su propia programación y directivas de ejecución.

Para obtener más información, vea Programadores de tareas.

.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4

.NET Framework Client Profile

Compatible con: 4

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

.NET para aplicaciones de Windows Phone

Compatible con: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 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.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft