在Windows 7中,跨线程exception是否不那么严格

我一直在编写WinForms代码,它使用BackgroundWorker做一些异步工作,然后在完成后更新UI; 我正在使用Windows 7.在一些情况下,我一直不小心,并在子线程上访问UI组件。 出于某种原因,这种方法运行良好,但只有在其他人在Windows XP上测试时才会破坏。 奇怪的是,当代码通过调试器运行时,它在Windows 7上也会中断

有人可以帮助我理解这里发生了什么 – 除了我是一个草率,粗心的程序员:)

在Windows 7上相对于Windows XP,跨线程exception的处理方式是否有所不同?

通常,这种操作的结果是不确定的。 在程序开头将Control.CheckForIllegalCrossThreadCalls属性设置为true,以在每个跨线程调用上获得可预测的失败。