有个简单的线程,内面运行一个函数:(FHTTPRIO1 as IZipFile).ResultString
其目的是通过连接web services返回字符串. 其中FHTTPRIO1为线程内创建,
IZipFile为通过WSDL文件生成,ResultString为接口函数.
如果不放入线程,此函数可以返回正确值,放入后没有任何结果,有没有高人知道?
procedure j.Execute;
begin
freeonterminate:=true;
TmpStr:=(FHTTPRIO1 as IZipFile).ResultString;
FMemo.Lines.Add(TmpStr);
if terminated then exit;
end;
其目的是通过连接web services返回字符串. 其中FHTTPRIO1为线程内创建,
IZipFile为通过WSDL文件生成,ResultString为接口函数.
如果不放入线程,此函数可以返回正确值,放入后没有任何结果,有没有高人知道?
procedure j.Execute;
begin
freeonterminate:=true;
TmpStr:=(FHTTPRIO1 as IZipFile).ResultString;
FMemo.Lines.Add(TmpStr);
if terminated then exit;
end;
解决方案 »
- RegisterClasses问题
- 兄弟们来砸我吧!
- 关于Qreport控件的多行打印的问题
- 问小问题,送大礼!!!!!!!
- 问树形结构模型数据库的设计问题!要求提取数据时效率高,而且数据库的结构在各种大型数据库通用,维护方便!
- MScomm问题,如何在二进制模式下转换串口数据为string??
- 关于delphi的问题,老是出现找不到字段
- .conf 文件类型
- 请问如何实现在一个Edit控件和一个Dbgrid控件上的问题???急!!!!!
- 哪位大侠,能为小弟指点迷途——穷举算法(关于网上邮箱搜索的),谢谢,十万火急,我这有高分!
- 小问题,本人一直没想出来,知道的朋友帮帮忙。。。
- 在线等,大哥门帮帮忙!分数还可以加!
begin
freeonterminate:=true;
TmpStr:=(FHTTPRIO1 as IZipFile).ResultString;
FMemo.Lines.Add(TmpStr);
if terminated then exit;
end;
看看你的线程代码吧, FMemo.Lines.Add(TmpStr);这一句是什么意思?多线程里面对于可视化vcl控件的访问,必须使用Synchronize,而不是直接操作。还有就是最后一句,if terminated then exit;
你的线程是顺序执行下来了,里面不用判断这一句,自己自然就退出了。你不信就在这里面设置断点,一步一步的执行看看。