walterlv / BlogComments

3 stars 0 forks source link

post/why-dispatcher-creates-a-hidden-message-only-window #161

Open utterances-bot opened 4 months ago

utterances-bot commented 4 months ago

WPF 的 Dispatcher 为什么要创建一个隐藏窗口? - walterlv

在深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分)中,我提到 Dispatcher 在构造函数中创建了一个隐藏窗口专门用来接收消息,以处理通过 Invoke 系列方法调用的那些操作。然而 C 不满足于只看到这个结论,他更期望知道为什么 W

https://blog.walterlv.com/post/why-dispatcher-creates-a-hidden-message-only-window

WuJieFly commented 4 months ago

很赞, 最近在做winform应用的时候也使用了 dispatcher类来阻塞调用,模拟form的dialog窗口状态, 遗憾的是,如果我再一个特殊的控件下(如 devexpress的 buttonedit)展示 这个窗口, 那焦点还是被 buttonedit抢占, 我进行了一些调试, 感觉是 当使用dispatcher.push的时候 又把 消息执行了一遍, 导致了焦点被抢占,我卡在了这个问题了, 请问大佬有没有什么建议来解决问题呢?