【问题标题】:Fill ComboBox in separate thread在单独的线程中填充 ComboBox
【发布时间】:2020-12-18 15:49:25
【问题描述】:

我有一个旧的 Delphi 7 项目。当应用程序启动时,很多字典被加载到 ComboBoxes 中。

在没有 Synchronize 方法的情况下在单独的线程中填充 ComboBox 是否安全?在加载过程中,用户还不能访问可视化组件,只有在所有线程都完成后才能收到。

【问题讨论】:

  • 在不同步的情况下从单独的线程使用 GUI 控件是绝对不安全的。这个问题被一遍又一遍地问到,答案总是一样的。

标签: multithreading delphi combobox thread-safety delphi-7


【解决方案1】:

在没有 同步方法?

没有。在没有同步的情况下在后台线程中访问 GUI 控件绝不是线程安全的。

【讨论】:

  • 与其让线程直接填充ComboBox,同步每次插入,我建议让线程先填充本地TStringList,然后在完成后同步1次以分配整个TStringList 一次操作到 ComboBox。
猜你喜欢
  • 2012-01-28
  • 1970-01-01
  • 1970-01-01
  • 2011-02-17
  • 1970-01-01
  • 2014-07-25
  • 2015-07-15
  • 1970-01-01
  • 2014-06-20
相关资源
最近更新 更多