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,則表示未排入過工作,系統便會隨即執行此呼叫,以內嵌方式執行工作,而不將它排入佇列。

傳回

布林值,表示工作是否以內嵌方式執行。

屬性

例外狀況

task 引數為 null。

task 已經執行。

備註

衍生自 TaskScheduler 的類別會實作此函式,以支援在起始該工作物件等候的執行緒上內嵌執行工作。 內嵌執行是選擇性的,而且可能會傳回 false 來拒絕要求。 不過,可以內嵌的工作越多,排程器就越能調整。 事實上,內嵌太少的排程器可能很容易死結。 適當的實作應該確保在排程器保證的原則下執行的要求可以成功內嵌。 例如,如果排程器使用專用線程來執行工作,則來自該執行緒的任何內嵌要求都應該成功。

如果排程器決定執行內嵌執行,則應該呼叫基底 TaskScheduler TryExecuteTask 的 方法,並傳播傳回值。 如果排程器決定接受內嵌要求,也可能適合排程器從其內部資料結構中移除內嵌工作。 不過請注意,在某些情況下,可能會要求排程器內嵌先前未使用 QueueTask 方法提供給它的工作。

衍生排程器負責確保呼叫執行緒適合在考慮自己的排程和執行原則時執行指定的工作。

如需詳細資訊,請參閱TaskScheduler

適用於

另請參閱