TaskScheduler.TryExecuteTaskInline(Task, Boolean) TaskScheduler.TryExecuteTaskInline(Task, Boolean) TaskScheduler.TryExecuteTaskInline(Task, Boolean) Method

Definición

Determina si el objeto Task especificado puede ejecutarse sincrónicamente en esta llamada y, en caso afirmativo, lo ejecuta.Determines whether the provided Task can be executed synchronously in this call, and if it can, executes it.

protected:
 abstract bool TryExecuteTaskInline(System::Threading::Tasks::Task ^ task, bool taskWasPreviouslyQueued);
[System.Security.SecurityCritical]
protected abstract bool TryExecuteTaskInline (System.Threading.Tasks.Task task, bool taskWasPreviouslyQueued);
abstract member TryExecuteTaskInline : System.Threading.Tasks.Task * bool -> bool

Parámetros

task
Task Task Task

Objeto Task que se va a ejecutar.The Task to be executed.

taskWasPreviouslyQueued
Boolean Boolean Boolean

Valor booleano que indica si la tarea se ha puesto anteriormente en la cola.A Boolean denoting whether or not task has previously been queued. 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.If this parameter is True, then the task may have been previously queued (scheduled); if False, then the task is known not to have been queued, and this call is being made in order to execute the task inline without queuing it.

Devoluciones

Valor booleano que indica si se ejecutó la tarea alineada.A Boolean value indicating whether the task was executed inline.

Excepciones

El argumento task es null.The task argument is null.

La task ya se ejecutó.The task was already executed.

Comentarios

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.A class derived from TaskScheduler implements this function to support inline execution of a task on a thread that initiates a wait on that task object. Ejecución insertada es opcional y se puede rechazar la solicitud y devuelve false.Inline execution is optional, and the request may be rejected by returning false. Sin embargo, las tareas más que pueden insertarse, mejor será el programador se escalará.However, the more tasks that can be inlined, the better the scheduler will scale. De hecho, un programador que inlines demasiado poco puedan ser propensas a interbloqueos.In fact, a scheduler that inlines too little may be prone to deadlocks. Debe asegurarse de que una solicitud que se ejecuta bajo las directivas que se garantiza que el programador correctamente puede insertar una implementación apropiada.A proper implementation should ensure that a request executing under the policies guaranteed by the scheduler can successfully inline. Por ejemplo, si un programador utiliza un subproceso dedicado para ejecutar tareas, las solicitudes de inserción desde ese subproceso deberían realizarse correctamente.For example, if a scheduler uses a dedicated thread to execute tasks, any inlining requests from that thread should succeed.

Si un programador decide llevar a cabo la ejecución en línea, deberá hacerlo mediante una llamada a la TaskScheduler base TryExecuteTask método con el objeto de tarea proporcionado, propagando el valor devuelto.If a scheduler decides to perform the inline execution, it should do so by calling to the base TaskScheduler's TryExecuteTask method with the provided task object, propagating the return value. También puede ser adecuado para el programador quitar una tarea insertada de sus estructuras de datos internas si decide aceptar la solicitud de inserción.It may also be appropriate for the scheduler to remove an inlined task from its internal data structures if it decides to honor the inlining request. Sin embargo, tenga en cuenta que en algunas circunstancias un programador puede que se pida a una tarea que no se proporcionó anteriormente a él con el QueueTask método.Note, however, that under some circumstances a scheduler may be asked to inline a task that was not previously provided to it with the QueueTask method.

El programador derivado es responsabilidad suya asegurarse de que el subproceso de llamada es adecuado para ejecutar la tarea determinada en cuanto a su propia programación y se refiere a las directivas de ejecución.The derived scheduler is responsible for making sure that the calling thread is suitable for executing the given task as far as its own scheduling and execution policies are concerned.

Para obtener más información, vea TaskScheduler.For more information, see TaskScheduler.

Se aplica a

Consulte también: