书上说,delphi的vcl对线程是不安全的,在下想问:是多个线程使用(还是同时?)同一个vcl组件对象不安全呢?还是多个线程只要使用vcl组件对象(不管是不是每个线程使用自己的组件对象)都会不安全?
解决方案 »
- delphi里如果知道界面上的焦点组件的名字?谢谢!在线
- jpg图片处理,可缩放,点某个位置后出现一个矩形框,并将这个框里的图复制到屏幕另外的地方,如有源代码者单独给100分
- 一个小问题(主丛表录入),希望各位路过来看看。
- 我在打印报表时遇到一个怪问题(数据库是Access)字段小计设置为双精度2位小数可是打印出来怎么是4为小数
- 关于异常
- sender是什么意思在线等!!!!!!
- 如何取得Rave报表的总页数 <急!>
- (求助Delphi高手)delphi socket发送和接受tcp信息包
- 表中有一个字段为自动的编号,怎么实现?
- “桌球城收费系统”的开发
- 一个非常奇怪的问题?
- 动态生成的vcl控件,他们的事件应该写在哪里
首先,只允许一个线程访问用户界面,大大降低了应用程序的复杂性。...我们不必去注意那些潜在的同步问题...此外,由于VCL只能在一个时刻被一个线程访问,因此在VCL内部就可以不考虑多线程同步问题。这样的应用程序的结构更为简洁,从而有助于提高应用程序的整体效率。1. 只能在应用程序的主线程中访问VCL的属性和方法。
2. TThread提供了名为Synchronize()的方法,该方法允许在应用程序的主线程内执行线程中的方法。该方法自动实现同步(内部实际上是串行执行)
3. 另外一种技术可以作为 Synchronize() 的替代品,可以使用 SendMessage() 或 PostMessage() 来发送消息到另一个线程环境操纵的窗口。
意思就是說, 如果你用多線程訪問同一個東西(vcl), 自己要做同步處理, delphi 沒幫你自動做