多线程调用Web Service的注意事项

时间:2010-03-11 阅读: 佚名
一段在主线程下调试成功的代码,移植到多线程下就不一定完全可行(虽然编译通过)。 比如刚刚写的一段调用远程WebService的代码,每次点击“开始”按钮,就报错“尚未调用coinitialize”,检查了一下代码,貌似没发现有啥不妥,没法子,只有百度去了。 百度后才发现,原来多线程下使用WebService还有“秘密”:必须在使用前初始化COM环境,具体操作如下: 1、uses ActiveX; 2、使用前先CoInitialize(nil); 3、使用完后Co

一段在主线程下调试成功的代码,移植到多线程下就不一定完全可行(虽然编译通过)。

比如刚刚写的一段调用远程WebService的代码,每次点击“开始”按钮,就报错“尚未调用coinitialize”,检查了一下代码,貌似没发现有啥不妥,没法子,只有百度去了。

百度后才发现,原来多线程下使用WebService还有“秘密”:必须在使用前初始化COM环境,具体操作如下:

1、uses  ActiveX;

2、使用前先CoInitialize(nil);

3、使用完后CoUninitialize;

 

再次调试,搞定~~~特发此文。

上述是delphi语法,C++等也需要如此操作,方法类似。

[责任编辑:jumbot]

[发表评论] [收藏本页]