delphi多线程连接sql的古怪问题

做成单线程没任何问题做成多线程后有时候连MessageBox都不会弹出以下是多线程的代码begininherited;ZCnn:=TADOConnection.Creat... 做成单线程没任何问题
做成多线程后有时候连MessageBox都不会弹出
以下是多线程的代码

begin
inherited;
ZCnn:=TADOConnection.Create(nil);
ZQuery:=TADOQuery.Create(nil);
MessageBox(0,pchar('我运行到这啦~'),'提示',0);
end;
【奇怪的地方】:运行程序有时候会弹出提示框 "我运行到这啦~" 有时候却根本不提示(那就是没有运行到那里),放在单线程中每次都会弹出提示,而且生成程序后运行,有时候提示 有时候又不提示,换电脑情况一样.
我用的是delphi xe3
展开
 我来答
众口说车
2013-08-09 · TA获得超过2323个赞
知道大有可为答主
回答量:3503
采纳率:50%
帮助的人:1507万
展开全部
synchronize这个是必须要使用的。。

另外,线程这东西是不安全的,所以,不建议在SQL查询时用线程。。
liu55721
2013-08-09 · TA获得超过922个赞
知道大有可为答主
回答量:1861
采纳率:100%
帮助的人:881万
展开全部
多线程,了解了解就够了,一般数据库编程,用多线程的机会,微乎其微.那个时候,CPU的主频只有几十MB,现在都四核了,执行一条SQL语句,可能鼠标还没有来得及松开,结果就出来了,多线程没有用了,至少在一般数据库编程上没有用武之地.相反还会浪费CPU时间.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
两只老虎之霸天虎
2013-08-09 · TA获得超过883个赞
知道小有建树答主
回答量:651
采纳率:0%
帮助的人:494万
展开全部
Delphi的MessageBox只是简单封装了API,没有增加线程安全的机制,所以会有问题
synchronize同步下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式