TaskScheduler.TryExecuteTaskInline(Task, Boolean) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
判斷是否可以在這個呼叫中同步執行所提供的 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
參數
- taskWasPreviouslyQueued
- Boolean
布林值,表示之前是否已排入過工作。 如果這個參數為 True,則可能之前已排入 (排定) 過工作,如果為 False,則表示未排入過工作,系統便會隨即執行此呼叫,以內嵌方式執行工作,而不將它排入佇列。
傳回
布林值,表示工作是否以內嵌方式執行。
- 屬性
例外狀況
task
引數為 null。
task
已經執行。
備註
衍生自 TaskScheduler 的類別會實作此函式,以支援在起始該工作物件等候的執行緒上內嵌執行工作。 內嵌執行是選擇性的,而且可能會傳回 false 來拒絕要求。 不過,可以內嵌的工作越多,排程器就越能調整。 事實上,內嵌太少的排程器可能很容易死結。 適當的實作應該確保在排程器保證的原則下執行的要求可以成功內嵌。 例如,如果排程器使用專用線程來執行工作,則來自該執行緒的任何內嵌要求都應該成功。
如果排程器決定執行內嵌執行,則應該呼叫基底 TaskScheduler TryExecuteTask 的 方法,並傳播傳回值。 如果排程器決定接受內嵌要求,也可能適合排程器從其內部資料結構中移除內嵌工作。 不過請注意,在某些情況下,可能會要求排程器內嵌先前未使用 QueueTask 方法提供給它的工作。
衍生排程器負責確保呼叫執行緒適合在考慮自己的排程和執行原則時執行指定的工作。
如需詳細資訊,請參閱TaskScheduler。