【问题标题】:Get Visual Studio to throw exceptions across threads让 Visual Studio 跨线程抛出异常
【发布时间】:2008-10-09 09:58:30
【问题描述】:

在我的 Silverlight 项目中,我有一个每 x 毫秒触发一次的线程。在这个线程中,我试图更改应用程序的状态。这不起作用,我不知道为什么,所以在 Timer 回调中设置一个断点。断点被击中,但在我尝试更改状态的那一刻,它刚刚退出函数(假设已抛出异常)。

我知道为什么会发生错误 - 您无法通过非 GUI 线程更改 GUI 内容。

我的问题是 - 当发生这样的异常时,如何让 Visual Studio 真正中断? (而不是默默地退出,如果有问题不会通知我)。

我尝试了“异常跨越 AppDomain 或托管/本机边界时中断”,但这没有任何效果。

【问题讨论】:

    标签: visual-studio-2008 multithreading exception silverlight-2-rc0


    【解决方案1】:

    您能否更改 InvalidOperationException 的中断处理,使其立即中断而不是仅在未处理时中断?

    【讨论】:

    • 调试菜单 -> 异常 -> CLR 异常 -> 系统 -> System.InvalidOperationException:勾选“抛出”列中的复选框。你可能会得到一些误报,但它应该(我相信)抓住你感兴趣的案例。
    • 谢谢约翰 - 我知道有地方可以这样做。它抓住了我的例外——但不是我所期待的!问题是 UnhandledException 事件被触发,然后试图显示一个警告框,这在非 GUI 线程中是无法做到的。
    猜你喜欢
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2018-09-18
    • 2013-11-27
    相关资源
    最近更新 更多