DispatcherQueueを理解するのに助けが必要だと思います。
新しい作業が到着すると、ディスパッチャキューの先頭に追加され、ディスパッチャが作業項目を処理する場合は、最初から削除されます。
より一般的に言えば、作業がある場合は、キュー内にFIFO方式で格納され、作業が残っていない限り処理されます。
ここでのMSDNドキュメントは、aloop
とframe
:を参照しています。
The Dispatcher processes the work item queue in a loop. The loop is referred to as a frame.
しかし、このコンテキストでのループはどこにありますか?私にとって、ループとは何かを繰り返すものであり、最後に達すると最初からやり直します。
そして、の概念は何frame
ですか?MSDNのドキュメントによると、フレームはキュー内の作業項目のパンチですか?それが本当なら、静的メソッドはどのようDisptatcher.PushFrame()
に使用されるべきですか?
そして、最も興味深い質問は、キューの現在の状態、特にキューにあるアイテムの数を取得する方法があるかどうかです。
以前に呼び出された(したがってDispatcherキューに入れられた)メソッドが実行された後、すぐにキューから削除された場合、または別の期間内部に残った場合、それは保持されますか?
私は知っています、とても多くの質問:-)