【问题标题】:CallContext change from WPF menu从 WPF 菜单更改 CallContext
【发布时间】:2010-11-22 12:55:29
【问题描述】:

有没有人尝试过从 WPF 菜单更改 CallContext 的内容? 在我们的应用程序中,我们在 callcontext 中存储了一个环境字符串 - 在服务器上它被转换为一个数据库连接字符串(使用 ILogicalThreadAffinative + .net 远程处理)。

在客户端上,可以在环境之间切换,更改后新线程/窗口具有新环境 - 所有窗口在窗口标题中都有环境。

问题在于,当从 MenuItem 完成此操作时,WPF 似乎将 CallContext 推送到某个堆栈上,然后将其弹出,使其无法更改。

我已经通过在菜单中插入一个组合框来解决它 - 这似乎有效但不是很好。 有没有人看到这个并找到了解决方案?

【问题讨论】:

    标签: wpf .net-remoting


    【解决方案1】:

    我认为发生这种情况是因为鼠标单击菜单项会导致将新操作发布到调度程序队列,并且 CallContext 不会在调度程序队列中的操作之间保持不变。

    请参阅this 了解更多信息。

    【讨论】:

    • 我认为你是对的 - 我还研究了执行上下文。我只是发现我可以从窗口中的按钮和菜单中的组合框更改调用上下文,但不能作为子菜单中的选择,这不一致。我认为 callcontext 的这种使用是它的目的 - 所以我想知道这是否是一个错误?
    • 我尝试了一个小样本,我的 callcontext 正在为按钮、组合框和菜单重置。所以 callcontext 对我来说总是空的,这当然比你看到的更一致。
    • 我会再次研究它,看看我能想出什么——如果你不能从 wpf 更改 callcontext,它就会失去一些使用。我的示例从一开始就设置了 callcontext,当我尝试更改它时,就会出现问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    • 2020-01-28
    • 2017-05-26
    • 1970-01-01
    相关资源
    最近更新 更多