Мне кажется, мне нужна помощь в понимании Dispatcher Queue.
Когда приходит новая работа, она добавляется в начале очереди диспетчера и когда диспетчер хочет обработать рабочий элемент, он будет удален с самого начала.
В более общих терминах: если есть работа, она хранится в форме FIFO внутри очереди и обрабатывается так долго, пока не осталось работы.
Документация MSDN здесь относится к loop
и frame
:
The Dispatcher processes the work item queue in a loop. The loop is referred to as a frame.
Но где цикл в этом контексте? Для меня цикл - это нечто, что итерирует что-то, и когда оно достигает цели, оно начинается снова.
А какое понятие a frame
? Согласно документации MSDN, кадр представляет собой набор рабочих элементов внутри очереди? Если это так, как должен использоваться статический метод Disptatcher.PushFrame()
?
И самый интересный вопрос: есть ли способ получить текущее состояние очереди, особенно количество элементов в очереди.
Выполняется ли это, если запускается метод, который был вызван раньше (и поэтому помещен в очередь диспетчера), который затем удаляется из очереди или длится внутри в течение еще одного периода времени?
Я знаю, столько вопросов: -)