DispatcherPriority 列挙型


Dispatcher での処理呼び出しの優先順位を示します。Describes the priorities at which operations can be invoked by way of the Dispatcher.

public enum class DispatcherPriority
public enum DispatcherPriority
type DispatcherPriority = 
Public Enum DispatcherPriority


ApplicationIdle 2

列挙値は 2 です。The enumeration value is 2. アプリケーションがアイドル状態のときに操作が処理されます。Operations are processed when the application is idle.

Background 4

列挙値は 4 です。The enumeration value is 4. 他のすべての非アイドル状態の操作が完了した後に操作が処理されます。Operations are processed after all other non-idle operations are completed.

ContextIdle 3

列挙値は 3 です。The enumeration value is 3. バックグラウンド操作が完了した後に操作が処理されます。Operations are processed after background operations have completed.

DataBind 8

列挙値は 8 です。The enumeration value is 8. データ バインディングと同じ優先順位で操作が処理されます。Operations are processed at the same priority as data binding.

Inactive 0

列挙値は 0 です。The enumeration value is 0. 操作は処理されません。Operations are not processed.

Input 5

列挙値は 5 です。The enumeration value is 5. 入力と同じ優先順位で操作が処理されます。Operations are processed at the same priority as input.

Invalid -1

列挙値は -1 です。The enumeration value is -1. これは無効な優先順位です。This is an invalid priority.

Loaded 6

列挙値は 6 です。The enumeration value is 6. レイアウトとレンダリングが完了した後、入力の優先順位の付いた項目が処理される直前に、操作が処理されます。Operations are processed when layout and render has finished but just before items at input priority are serviced. 具体的には、これは、Loaded イベントを発生させるときに使用されます。Specifically this is used when raising the Loaded event.

Normal 9

列挙値は 9 です。The enumeration value is 9. 通常の優先順位で操作が処理されます。Operations are processed at normal priority. これが一般的なアプリケーションの優先順位です。This is the typical application priority.

Render 7

列挙値は 7 です。The enumeration value is 7. レンダリングと同じ優先順位で操作が処理されます。Operations processed at the same priority as rendering.

Send 10

列挙値は 10 です。The enumeration value is 10. 他の非同期操作の前に操作が処理されます。Operations are processed before other asynchronous operations. これが最も高い優先順位です。This is the highest priority.

SystemIdle 1

列挙値は 1 です。The enumeration value is 1. システムがアイドル状態のときに操作が処理されます。Operations are processed when the system is idle.

次の例では、メソッドを呼び出し、 Dispatcher.BeginInvoke 1 つの引数を持つデリゲートを渡します。The following example calls the Dispatcher.BeginInvoke method and passes it a delegate with one argument. 優先順位はに設定されて Normal います。The priority is set to Normal.

// Schedule the update function in the UI thread.
    new OneArgDelegate(UpdateUserInterface), 
' Schedule the update function in the UI thread.
tomorrowsWeather.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, New OneArgDelegate(AddressOf UpdateUserInterface), weather)


現在のバージョンの WPF には、およびに対応する特定のシステム状態または "アイドル" がありません ApplicationIdle ContextIdleThere is no specific system state or "idleness" corresponding to ApplicationIdle and ContextIdle in the current version of WPF. どちらも有効な優先順位です。優先度がの操作は、優先度が ContextIdle の操作よりも高い優先順位を持ち SystemIdle ます。Both are still valid priorities; an operation with a priority of ContextIdle has a higher priority than an operation with a priority of SystemIdle.

は、 Dispatcher CPU の特定の割合を超えた場合に、操作の実行を調整しません。The Dispatcher does not throttle the execution of an operation if it exceeds a certain percentage of the CPU. プロセスを調整する方法の1つは、タイマーを使用することです。One way to throttle a process is to use a timer.

操作がの優先順位で独自のによってポストされた場合 Dispatcher.Invoke Dispatcher Send 、操作はキューをバイパスし、直ちに実行されます。If an operation is posted using Dispatcher.Invoke on its own Dispatcher at a priority of Send, the operation bypasses the queue and is immediately executed.