求助c++ builder多线程的一个问题
我想在程序运行时,开一个线程执行以下代码:
AnsiString cap; TXMLDocument *XMLDocument1; XMLDocument1->LoadFromFile("http://xtayaitak.free.yun110.cn/mms.xml"); url= XMLDocument1->DocumentElement->ChildNodes->Nodes[0]->Text; cap= XMLDocument1->DocumentElement->ChildNodes->Nodes[0]->AttributeNodes->Nodes[0]->Text; label1->Caption=cap;//UnitThread.h#ifndef UnitThreadH#define UnitThreadH//---------------------------------------#include <Classes.hpp>#include <msxmldom.hpp>#include <XMLDoc.hpp>#include <xmldom.hpp>#include <XMLIntf.hpp>//---------------------------------------class TLabelSet : public TThread{private: AnsiString url; TLabel *label1; void __fastcall downloadUrl();protected: void __fastcall Execute();public: __fastcall TLabelSet(bool CreateSuspended,AnsiString &url,TLabel *label1);};//---------------------------------------#endif//---------------------------------------/***************UnitThead.cpp***************/#include <vcl.h>#pragma hdrstop#include "UnitThread.h"#pragma package(smart_init)__fastcall TLabelSet::TLabelSet(bool CreateSuspended,AnsiString &url,TLabel *label1) : TThread(CreateSuspended){ Priority=tpIdle; FreeOnTerminate=true;}//---------------------------------------void __fastcall TLabelSet::Execute(){ //---- Place thread code here ---- Synchronize(downloadUrl);}//---------------------------------------void __fastcall TLabelSet:: downloadUrl(){ AnsiString cap; TXMLDocument *XMLDocument1; XMLDocument1->LoadFromFile("http://xtayaitak.free.yun110.cn/mms.xml"); url= XMLDocument1->DocumentElement->ChildNodes->Nodes[0]->Text; cap= XMLDocument1->DocumentElement->ChildNodes->Nodes[0]->AttributeNodes->Nodes[0]->Text; label1->Caption=cap;}void __fastcall TFormMain::FormShow(TObject *Sender){ thread1 =new TLabelSet(false,url,Lable_4);}__fastcall TLabelSet::TLabelSet(bool CreateSuspended,AnsiString &Url,TLabel *Label1) : TThread(CreateSuspended){ Priority=tpIdle; FreeOnTerminate=true; this->url=Url; this->label1=Label1;}