TaskScheduler.TryExecuteTaskInline(Task, Boolean) 方法

定义

确定是否可以在此调用中同步执行提供的 Task,如果可以,将执行该任务。

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);
protected abstract bool TryExecuteTaskInline (System.Threading.Tasks.Task task, bool taskWasPreviouslyQueued);
[<System.Security.SecurityCritical>]
abstract member TryExecuteTaskInline : System.Threading.Tasks.Task * bool -> bool
abstract member TryExecuteTaskInline : System.Threading.Tasks.Task * bool -> bool
Protected MustOverride Function TryExecuteTaskInline (task As Task, taskWasPreviouslyQueued As Boolean) As Boolean

参数

task
Task

要执行的 Task

taskWasPreviouslyQueued
Boolean

一个布尔值,该值指示任务之前是否已排队。 如果此参数为 True,则该任务以前可能已排队(已计划);如果为 False,则已知该任务尚未排队,此时将执行此调用,以便以内联方式执行该任务,而不用将其排队。

返回

Boolean

一个布尔值,该值指示是否已以内联方式执行该任务。

属性

例外

task 参数为 null。

已执行的 task

注解

派生自 TaskScheduler 实现此函数的类,以支持在启动该任务对象等待的线程上内联执行任务。 内联执行是可选的,可以通过返回 false 拒绝请求。 但是,可以内联的任务越多,计划程序就越能缩放。 事实上,内联太少的计划程序可能容易出现死锁。 适当的实现应确保按计划程序保证的策略执行的请求可以成功内联执行。 例如,如果计划程序使用专用线程执行任务,则来自该线程的任何内联请求都应成功。

如果计划程序决定执行内联执行,则应通过调用具有提供的任务对象的基 TaskScheduler TryExecuteTask 方法来执行此操作,从而传播返回值。 如果计划程序决定遵守内联请求,则它也可能适合从其内部数据结构中删除内联任务。 但是,请注意,在某些情况下,可能会要求计划程序内联以前未使用 QueueTask 该方法提供给它的任务。

派生的计划程序负责确保调用线程适合就其自己的计划和执行策略执行给定任务。

有关详细信息,请参阅 TaskScheduler

适用于

另请参阅