当前位置:  开发笔记 > 后端 > 正文

在Delphi中,TDataSet线程安全吗?

如何解决《在Delphi中,TDataSet线程安全吗?》经验,为你挑选了1个好方法。

我希望能够在自己的线程中异步打开TDataSet,以便主VCL线程可以继续,直到完成,然后从该TDataSet读取主VCL线程.我做了一些实验并且遇到了一些非常奇怪的情况,所以我想知道是否有人之前做过这件事.

我已经看到一些示例应用程序,其中TDataSet是在一个单独的线程中创建的,它已打开,然后从中读取数据,但这都是在单独的线程中完成的.我想知道在另一个线程打开数据源之后从主VCL线程读取TDataSet是否安全.

我在Delphi 7中进行Win32编程,使用DAC for MySQL的 TmySQLQuery 作为我的TDataSet后代.



1> François..:

如果您只想在自己的线程中使用数据集,则可以使用synchronize与主线程进行通信以进行任何VCL/UI更新,就像使用任何其他组件一样.
或者,更好的是,您可以使用自己的消息传递系统实现mainthread和worker线程之间的通信.

查看Hallvard的线程解决方案:http:
//hallvards.blogspot.com/2008/03/tdm6-knitting-your-own-threads.html

或另一个:http:
//dn.codegear.com/article/22411

有关同步及其低效率的一些解释:http:
//www.eonclash.com/Tutorials/Multithreading/MartinHarvey1.1/Ch3.html

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有