关于DELPHI5多线程同步的问题

zhengliangmiao 2010-04-15 03:39:09
各位朋友大家好,本人刚开始研究多线程,还有很多不明白的地方,望大家指教,谢谢!
问题是这样的:
定义两个线程,当按钮连接时执行连接创建一个线程序,连接成功后执行查询按扭再创建一个线程,现在问题是查询线程
中无法利用 连接线程的SocketConnection1,如何同步呢?
部分代码如下:

定义:
type
Tthread1 = class(Tthread)
protected
procedure Execute;override;
procedure getSocketConn;
end;

type
Tthread2 = class(Tthread)
protected
procedure Execute;override;
procedure getClientDataSet;
end;

procedure Tthread1.Execute;
begin

Try
FreeOnTerminate:=true;
ConToolsFrm.SocketConnection1.ServerGUID:='{2C8E3F43-ABE4-11D4-B352-00E04C67568C}';
ConToolsFrm.SocketConnection1.ServerName:='apply_tier.Apply_data';
ConToolsFrm.SocketConnection1.Connected:=False;
ConToolsFrm.SocketConnection1.Host:= ConToolsFrm.edtHost.Text;
ConToolsFrm.SocketConnection1.Connected:=True;
ShowMessage('连接成功!');
Except
ShowMessage('连接失败,请断开后再试!');
ConToolsFrm.SocketConnection1.Connected:=False;
end;
end;

procedure Tthread2.Execute;
var
sqlStr:string;
begin
ConToolsFrm.ClientDataSet1.Close;
ConToolsFrm.ClientDataSet1.RemoteServer:=ConToolsFrm.SocketConnection1;
ConToolsFrm.ClientDataSet1.ProviderName:='provider7';
sqlStr:=ConToolsFrm.edtSql.Text;

ConToolsFrm.SocketConnection1.appserver.zyyf_pub_pro(sqlStr, 'o');
ConToolsFrm.ClientDataSet1.Open; //该部分直接跳走没有运行
if ConToolsFrm.ClientDataSet1.RecordCount=0 then
begin
if ConToolsFrm.FindProcess('apply_tier.exe') then //中间层正在运行
begin
//重启 SOCKET SERVER
ConToolsFrm.StartService('SocketServer');
//关闭apply_tier进程
ConToolsFrm.EndProcess('apply_tier.exe');
end;
end;
end;

//连接
procedure TConToolsFrm.btnConnectClick(Sender: TObject);
begin
mythread1:=Tthread1.Create(false);
end;

procedure TConToolsFrm.btnSelectClick(Sender: TObject);
begin
mythread2:=Tthread2.Create(false);
end;
...全文
87 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengliangmiao 2010-04-20
  • 打赏
  • 举报
回复
自己解决了,只要把SocketConnection1的supportCallBacks属性设为false就好了
zhengliangmiao 2010-04-15
  • 打赏
  • 举报
回复
楼上的朋友,麻烦具体点好吗?
  • 打赏
  • 举报
回复
临界区,互斥对象等等.............

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧