語言

JoinableTaskFactory 類別

定義

這是一個用來啟動非同步任務的工廠,當任務需要應用程式的主執行緒時,可以減輕死機,而主執行緒本身可能阻礙任務完成。

public ref class JoinableTaskFactory
[Windows::Foundation::Metadata::WebHostHidden]
class JoinableTaskFactory
public class JoinableTaskFactory
type JoinableTaskFactory = class
Public Class JoinableTaskFactory
繼承
JoinableTaskFactory
衍生

備註

如需更完整的評論,請參閱 JoinableTaskContext。

建構函式

名稱 Description
JoinableTaskFactory(JoinableTaskCollection)

初始化一個新的類別實例 JoinableTaskFactory ,將所有產生的工作加入指定的集合。

JoinableTaskFactory(JoinableTaskContext)

初始化 JoinableTaskFactory 類別的新執行個體。

屬性

名稱 Description
Context

取得該工廠所屬的可加入任務上下文。

HangDetectionTimeout

取得或設定逾時,之後同步封鎖時沒有任何活動顯示有延遲。

UnderlyingSynchronizationContext

它會取得控制主機主執行緒的底層 SynchronizationContext 。

方法

名稱 Description
Add(JoinableTask)

將指定的可加入任務加入到適用的集合中。

DisableProcessing()

防止過濾訊息泵在環境同步等待 JoinableTask期間運行。

IsWaitingOnLongRunningTask()

檢查目前的 joinableTask 是否正在等待一個長期執行的任務。

OnTransitionedToMainThread(JoinableTask, Boolean)

當可加入的任務完成主執行緒的轉換時,該任務會被提出。

OnTransitioningToMainThread(JoinableTask)

當可加入的任務要求轉移到主執行緒時,會被提出。

PostToUnderlyingSynchronizationContext(SendOrPostCallback, Object)

當主執行緒自由可用時,會向指定的底層 SynchronizationContext 發布訊息以供處理。

Run(Func<Task>, JoinableTaskCreationOptions)

執行指定的非同步方法至完成,同時同步阻擋呼叫執行緒。

Run(Func<Task>)

執行指定的非同步方法至完成,同時同步阻擋呼叫執行緒。

Run<T>(Func<Task<T>>, JoinableTaskCreationOptions)

執行指定的非同步方法至完成,同時同步阻擋呼叫執行緒。

Run<T>(Func<Task<T>>)

執行指定的非同步方法至完成,同時同步阻擋呼叫執行緒。

RunAsync(Func<Task>, JoinableTaskCreationOptions)

在呼叫者的執行緒中呼叫一個非同步代理,當非同步方法被 yield 時,則回傳給呼叫者。 非同步代理的呼叫方式是為了減輕非同步方法在主執行緒阻塞等待非同步方法完成時,主執行緒需要執行緒時的死鎖。

RunAsync(Func<Task>, String, JoinableTaskCreationOptions)

這是一個用來啟動非同步任務的工廠,當任務需要應用程式的主執行緒時,可以減輕死機,而主執行緒本身可能阻礙任務完成。

RunAsync(Func<Task>)

在呼叫者的執行緒中呼叫一個非同步代理,當非同步方法被 yield 時,則回傳給呼叫者。 非同步代理的呼叫方式是為了減輕非同步方法在主執行緒阻塞等待非同步方法完成時,主執行緒需要執行緒時的死鎖。

RunAsync<T>(Func<Task<T>>, JoinableTaskCreationOptions)

在呼叫者的執行緒中呼叫一個非同步代理,當非同步方法被 yield 時,則回傳給呼叫者。 非同步代理的呼叫方式是為了減輕非同步方法在主執行緒阻塞等待非同步方法完成時,主執行緒需要執行緒時的死鎖。

RunAsync<T>(Func<Task<T>>, String, JoinableTaskCreationOptions)

這是一個用來啟動非同步任務的工廠,當任務需要應用程式的主執行緒時,可以減輕死機,而主執行緒本身可能阻礙任務完成。

RunAsync<T>(Func<Task<T>>)

在呼叫者的執行緒中呼叫一個非同步代理,當非同步方法被 yield 時,則回傳給呼叫者。 非同步代理的呼叫方式是為了減輕非同步方法在主執行緒阻塞等待非同步方法完成時,主執行緒需要執行緒時的死鎖。

SwitchToMainThreadAsync(Boolean, CancellationToken)

取得一個 waitable,其續行會在該實例初始化的同步上下文中執行,以減輕死結與重入。

SwitchToMainThreadAsync(CancellationToken)

獲得一個等待的項目,其續寫會在主線程中執行,以減少死局與重新進入的問題。

WaitSynchronously(Task)

同步阻擋呼叫執行緒以完成指定任務。 若在主執行緒上執行,執行緒休眠時會抑制任何適用的訊息泵浦。

WaitSynchronouslyCore(Task)

同步阻擋呼叫執行緒以完成指定任務。

擴充方法

名稱 Description
Run(JoinableTaskFactory, String, Func<IProgress<ThreadedWaitDialogProgressData>,CancellationToken,Task>, Nullable<TimeSpan>)

阻擋呼叫(UI)執行緒,直到可取消且非同步的操作完成。 若操作時間過長,會顯示可取消的等待對話框。

Run(JoinableTaskFactory, String, Func<IProgress<ThreadedWaitDialogProgressData>,Task>, Nullable<TimeSpan>)

阻擋呼叫(UI)執行緒,直到非同步操作完成。 若操作時間過長,會顯示可取消的等待對話框。

Run(JoinableTaskFactory, String, String, Func<IProgress<ThreadedWaitDialogProgressData>,CancellationToken,Task>, Nullable<TimeSpan>)

阻擋呼叫(UI)執行緒,直到非同步操作完成。 用戶可自行取消。

Run(JoinableTaskFactory, String, String, Func<IProgress<ThreadedWaitDialogProgressData>,Task>, Nullable<TimeSpan>)

阻擋呼叫(UI)執行緒,直到非同步操作完成。 用戶不提供取消服務。

Run<T>(JoinableTaskFactory, String, Func<IProgress<ThreadedWaitDialogProgressData>,CancellationToken,Task<T>>, Nullable<TimeSpan>)

阻擋呼叫(UI)執行緒,直到可取消且非同步的操作完成。 若操作時間過長,會顯示可取消的等待對話框。

Run<T>(JoinableTaskFactory, String, Func<IProgress<ThreadedWaitDialogProgressData>,Task<T>>, Nullable<TimeSpan>)

阻擋呼叫(UI)執行緒,直到非同步操作完成。 若操作時間過長,會顯示可取消的等待對話框。

Run<T>(JoinableTaskFactory, String, String, Func<IProgress<ThreadedWaitDialogProgressData>,CancellationToken,Task<T>>, Nullable<TimeSpan>)

阻擋呼叫(UI)執行緒,直到非同步操作完成。 用戶可自行取消。

Run<T>(JoinableTaskFactory, String, String, Func<IProgress<ThreadedWaitDialogProgressData>,Task<T>>, Nullable<TimeSpan>)

阻擋呼叫(UI)執行緒,直到非同步操作完成。 用戶不提供取消服務。

RunAsync(JoinableTaskFactory, VsTaskRunContext, Func<Task>)

將非同步方法的呼叫包裝,使其可能非同步執行,但未來可能會同步完成(等待)。

RunAsync<T>(JoinableTaskFactory, VsTaskRunContext, Func<Task<T>>)

將非同步方法的呼叫包裝,使其可能非同步執行,但未來可能會同步完成(等待)。

RunAsyncAsVsTask<T>(JoinableTaskFactory, VsTaskRunContext, Func<CancellationToken,Task<T>>)

建立一個 IVsTask 來追蹤可取消的非同步操作。

StartOnIdle(JoinableTaskFactory, Action, VsTaskRunContext)

在 UI 執行緒上排程一個代理程式,用於背景執行,且不會繼承呼叫者對 UI 執行緒的任何權利。

StartOnIdle(JoinableTaskFactory, Func<Task>, VsTaskRunContext)

在 UI 執行緒上排程一個代理程式,用於背景執行,且不會繼承呼叫者對 UI 執行緒的任何權利。

WithPriority(JoinableTaskFactory, Dispatcher, DispatcherPriority)

建立 JoinableTaskFactory 一個,將工作排程為指定的 Dispatcher 和 DispatcherPriority。

WithPriority(JoinableTaskFactory, VsTaskRunContext)

建立JoinableTaskFactory一個,排程工作,並依照指定的 Visual Studio UI 執行緒優先順序進行工作。

適用於

執行緒安全性

此類型對所有成員皆為執行緒安全。