一段在主線程下調(diào)試成功的代碼,移植到多線程下就不一定完全可行(雖然編譯通過)。
比如剛剛寫的一段調(diào)用遠(yuǎn)程WebService的代碼,每次點(diǎn)擊“開始”按鈕,就報(bào)錯(cuò)“尚未調(diào)用coinitialize”,檢查了一下代碼,貌似沒發(fā)現(xiàn)有啥不妥,沒法子,只有百度去了。
百度后才發(fā)現(xiàn),原來多線程下使用WebService還有“秘密”:必須在使用前初始化COM環(huán)境,具體操作如下:
1、uses ActiveX;
2、使用前先CoInitialize(nil);
3、使用完后CoUninitialize;
再次調(diào)試,搞定~~~特發(fā)此文。
上述是delphi語法,C++等也需要如此操作,方法類似。
新聞熱點(diǎn)
疑難解答
圖片精選