【问题标题】:Window: graphic element on the same thread (STA)窗口:同一线程上的图形元素(STA)
【发布时间】:2011-11-18 06:27:01
【问题描述】:

为什么在 Windows 中一个图形元素(如 Winform 中的按钮)只能从创建它的线程访问?

【问题讨论】:

    标签: windows winforms user-interface thread-safety


    【解决方案1】:

    这是因为大多数原生窗口 API(例如 Windows API)都内置了线程亲和性,以允许消息传递正常工作,因为“消息”(例如输入事件)在队列中处理在单个线程中(即:消息泵)。

    因此,包装此功能的图形元素(例如 Windows 窗体)从其核心 API 继承此限制。

    话虽如此,某些框架不会以这种方式限制您。例如,WPF 允许从后台线程更改数据绑定原语,4.5 版本甚至允许从后台线程更改集合中的项目。线程同步要求在内部处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-28
      • 1970-01-01
      • 1970-01-01
      • 2017-11-30
      相关资源
      最近更新 更多