【发布时间】:2011-03-24 15:25:22
【问题描述】:
我可以在子线程上调用MessageBox.Show 而不必担心跨线程异常吗?我知道表面上的答案是“尝试并找出答案”,我成功地做到了,但我注意到 Windows 7 在引发跨线程异常方面似乎没有 Windows XP 严格。
那么,它是否记录在任何可以从子线程安全执行的地方?
【问题讨论】:
-
你到底是什么意思?跨线程异常的来源是什么?
-
AFAIK 跨线程调用异常不依赖于操作系统。它们是以某种方式使用 WinForms API 的记录结果。
-
@Jon,我只是想确保调用 MessageBox.Show 不会像弄乱组合框那样构成 UI 访问。我想不是,但我想确定
-
@Martino,我(愚蠢地)编写了从运行良好的子线程访问 UI 元素的错误代码,直到有人在 Windows XP 上对其进行测试后才将其发回给我。我不知道为什么Win7对此如此宽容,但它是:(
-
不可能,这是纯 .NET 管道,与操作系统没有任何关系。没有调试器永远不会引发异常。
标签: c# winforms multithreading