gpt4 book ai didi

wpf - 调度员困境 - 如何正确调度?

转载 作者:行者123 更新时间:2023-12-04 05:08:14 25 4
gpt4 key购买 nike

我已经阅读了 WPF 中有关 Dispatcher 的文章,但没有一篇文章能很好地解释 Dispatcher 的行为。所以我对你们的问题是,除了保留任务队列并按优先级执行它们之外,Dispatcher 究竟做了什么?队列看起来像什么?如果我按优先级“正常”依次放置 3 个任务,然后依次放置一个优先级“发送”的任务。哪个会先执行?优先级为 normal 的 3 个任务将按什么顺序执行?是否有一些关于 Dispatcher 的非常好的教程或一些你们想分享的概念证明?

最佳答案

Dispatcher实际上只是 WPF 应用程序的消息泵。

与传统的 Windows 消息泵不同,它确实具有内置优先级,因此它的作用类似于 priority queue。而不是传统的(先进先出)队列。

如果您发送优先级为 Send 的消息,它将在其他优先级的操作之前得到处理,例如Normal .您可以在 DispatcherPriority 中查看优先级列表及其值。帮助。较高优先级的消息总是在较低优先级的消息(尚未被处理)之前处理。

至于你的具体问题:

So my question to you guys is what does Dispatcher do exactly except keeping a queue of tasks and executing them by their priorities?



它处理和处理 Windows 消息,就像传统 Win32 或 Windows 窗体应用程序中的普通 Windows 消息泵一样。优先队列的构建是为了处理除了标准 Windows 消息之外的用户消息,并具有内置的优先级。

What does the queue look alike?



它实际上是一个优先级队列。

If I put 3 tasks in in sequence with priority "normal", and then subsequently one task with priority "send". Which will be executed first?



这取决于。如果当时有其他工作正在进行, Send任务将首先处理。如果没有其他工作正在进行, Normal任务可能会在您提交 Send 之前执行任务,在这种情况下,顺序将改变。 Send但是,任务将尽快执行。

In what order will the 3 tasks with priority normal be executed?



这些将按照它们被分派(dispatch)的相同顺序执行。

关于wpf - 调度员困境 - 如何正确调度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15230005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com