Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método TaskScheduler.TryExecuteTaskInline (Task, Boolean)

 

Publicado: noviembre de 2016

Determina si el Task puede ejecutarse sincrónicamente en esta llamada y si es posible, se ejecuta.

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

[SecurityCriticalAttribute]
protected abstract bool TryExecuteTaskInline(
	Task task,
	bool taskWasPreviouslyQueued
)

Parámetros

task
Type: System.Threading.Tasks.Task

El Task que se ejecute.

taskWasPreviouslyQueued
Type: System.Boolean

Un valor booleano que indica si tarea previamente ha en cola. Si este parámetro es True, a continuación, la tarea puede previamente en una cola (programado); Si es False, a continuación, la tarea se sabe que no se ha puesto en cola y esta llamada se realiza para ejecutar la tarea insertada sin cola de él.

Valor devuelto

Type: System.Boolean

Un valor booleano que indica si la tarea se ejecuta de forma alineada.

Exception Condition
ArgumentNullException

El task del argumento es null.

InvalidOperationException

El task ya se ejecutó.

Una clase derivada de TaskScheduler implementa esta función para admitir la ejecución en línea de una tarea en un subproceso que inicia una espera en ese objeto de tarea. Ejecución insertada es opcional y la solicitud se puede rechazar devolviendo false. Sin embargo, las tareas más que puede insertarse, se escala mejor el programador. De hecho, un programador que inserte muy poca puede provocar interbloqueos. Una implementación apropiada debería asegurar que una solicitud que se ejecute bajo las directivas garantizadas por el programador puede correctamente alineado. Por ejemplo, si un programador utiliza un subproceso dedicado para ejecutar tareas, las solicitudes de inserción desde ese subproceso deben ejecutarse correctamente.

Si un programador decide realizar la ejecución en línea, deberá hacerlo mediante una llamada para el objeto TaskScheduler base TryExecuteTask método con el objeto de tarea proporcionado, propagando el valor devuelto. También puede ser adecuado para el programador quitar una tarea insertada de sus estructuras de datos internas si decide responder a la solicitud de inserción. Sin embargo, tenga en cuenta que en algunas circunstancias un programador puede que se pida a una tarea que no se proporcionó previamente a él con el QueueTask método.

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

Para obtener más información, consulta Task Schedulers.

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 4.0
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 5.0
Windows Phone Silverlight
Disponible desde 8.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: