我一直在编写WinForms代码,使用BackgroundWorker来完成一些异步工作,然后在完成后更新UI;我使用的是Windows 7。有几种情况下,我粗心大意地访问了子线程上的UI组件。由于某些原因,这是很好的工作,但只有一次故障,其他人测试的Windows。奇怪的是,当代码通过调试器运行时,它也会在Windows 7上崩溃。
有人能帮我理解这里发生了什么吗?除了我是一个粗心大意的程序员:)?
在Windows 7和Windows XP上是否以不同的方式处理跨线程异常?
发布于 2011-02-16 15:42:26
一般情况下,这种操作的结果是不确定的。在程序开始时将Control.CheckForIllegalCrossThreadCalls属性设置为true,以便在每个跨线程调用中获得可预测的失败。
https://stackoverflow.com/questions/5018169
复制相似问题