书上说,delphi的vcl对线程是不安全的,在下想问:是多个线程使用(还是同时?)同一个vcl组件对象不安全呢?还是多个线程只要使用vcl组件对象(不管是不是每个线程使用自己的组件对象)都会不安全?
解决方案 »
- 连接sqlserver2000的问题,大家讨论解决一下
- 在DELPHI中如何调用C写的动态连接库
- 谁有世纪飞扬(http://www.cstsoft.com.cn/china/index.html)的 Instrument VCL Pack 图形仪表控件的解密程序(急)
- 如何引用另一个 .pas 单元?
- 请问各位高手,delphi6中的DBCtrlGrid控件是否可以多选?如果想在数据集中多选的话如何写代码?
- 求解一数据过滤算法。
- 关于LISTVIEW组件拖拽的处理?
- 有谁知道在SQLServer7中,如何查看用户的详细操作日志。。。如:Insert,select等操作。一旦解决马上给分,谢谢
- 买SReport控件,请mailto:[email protected]
- 如何用Delphi控制鼠标在屏幕的位置?
- 一个非常奇怪的问题?
- 动态生成的vcl控件,他们的事件应该写在哪里
首先,只允许一个线程访问用户界面,大大降低了应用程序的复杂性。...我们不必去注意那些潜在的同步问题...此外,由于VCL只能在一个时刻被一个线程访问,因此在VCL内部就可以不考虑多线程同步问题。这样的应用程序的结构更为简洁,从而有助于提高应用程序的整体效率。1. 只能在应用程序的主线程中访问VCL的属性和方法。
2. TThread提供了名为Synchronize()的方法,该方法允许在应用程序的主线程内执行线程中的方法。该方法自动实现同步(内部实际上是串行执行)
3. 另外一种技术可以作为 Synchronize() 的替代品,可以使用 SendMessage() 或 PostMessage() 来发送消息到另一个线程环境操纵的窗口。
意思就是說, 如果你用多線程訪問同一個東西(vcl), 自己要做同步處理, delphi 沒幫你自動做