【问题标题】:How to display message to use synchronously while dispatcher processing is suspended?如何在调度程序处理暂停时显示消息以同步使用?
【发布时间】:2013-11-01 17:17:21
【问题描述】:

当应用程序引发一些异常时,通常所做的事情是记录异常,向用户显示,并根据其严重程度,继续使用应用程序或关闭它。

如果有一些例外情况,比如

“在调度程序处理暂停时无法执行此操作。”

异常,UI 无法向用户显示消息,我们需要使用 Dispatcher.BeginInvoke 异步向用户显示消息。 BeginInvoke 的问题在于它立即返回,并且代码从显示消息框的位置继续执行。在我们需要用户输入的情况下(例如是/否对话框)。

那么,我们如何才能安全地显示消息框对话框,并在继续执行代码之前仍然等待用户执行操作?

【问题讨论】:

    标签: wpf dispatcher wpf-4.0


    【解决方案1】:

    如果您使用Invoke() 而不是BeginInoke(),您的线程在任务完成之前不会立即返回,允许您询问用户如何继续操作。

    this问题中的更多信息

    【讨论】:

    • Dispatcher 处理暂停时无法使用 Invoke。
    • @Goran 啊,我明白了,是否可以 BeginInvoke 不仅是消息框,还有你想运行的其余代码,而不需要对你的内容进行大量重组已经有了?
    • 嗯,这需要将完整的代码标记为异步,因为我无法确定何时会发生异常(未处理)。 :)
    猜你喜欢
    • 2014-06-20
    • 2018-03-26
    • 2016-05-12
    • 2011-12-23
    • 1970-01-01
    • 2012-01-13
    • 2012-03-25
    • 2021-12-05
    • 1970-01-01
    相关资源
    最近更新 更多