I think I need some help understanding the Dispatcher Queue.
When new work arrives it gets added at the beginning of the dispatcher queue and when the Dispatcher wants to process a working item it gets removed from the beginning.
In more general terms: If there is work it gets stored in a FIFO manner inside the queue and processed as long there is no work left.
The MSDN documentation here is referring to a loop
and a frame
:
The Dispatcher processes the work item queue in a loop. The loop is referred to as a frame.
But where is a loop in this context ? For me a loop is something that iterates over something and when it reaches the end it starts over again.
And what's the concept of a frame
? According to the MSDN documentation a frame is a punch of working items inside the queue ? If that's true how should the static method Disptatcher.PushFrame()
be used ?
And the most interesting question is whether there is any way to get the current state of the queue especially how many items are in the queue.
Does it hold if a method that has been invoked before (and therefor put into the Dispatcher queue) gets executed that it is then removed from the queue immediately or does it last inside for another period of time ?
I know, So many questions :-)