c++builder XE6 线程

时间:2014-08-26 17:13:26   收藏:0   阅读:230
class TSleepFunc : public TCppInterfacedObject<TProc>
{
public:
    TSleepFunc(TForm28* Form) : FForm(Form)
    {
    }

    virtual void __fastcall Invoke(void)
    {
        for (FForm->ClientDataSet1->First(); !FForm->ClientDataSet1->Eof; FForm->ClientDataSet1->Next())
        {
            FForm->ClientDataSet1->Edit();
            FForm->ClientDataSet1->FieldByName("Stat")->Value = FForm->ClientDataSet1->RecNo;
            FForm->ClientDataSet1->Post();
        }
        TThread::Synchronize(TThread::CurrentThread, UpdateCaption);
    }

    void __fastcall UpdateCaption(void)
    {
        FForm->Caption = "OK";
    }

private:
    TForm28* FForm;
};

// ---------------------------------------------------------------------------
void __fastcall TForm28::Button1Click(TObject *Sender)
{
    ClientDataSet1->Close();
    ADOQuery1->Close();
    ADOQuery1->SQL->Text = "select * from brda";
    ADOQuery1->Open();
    ClientDataSet1->Open();

    TThread::CreateAnonymousThread(new TSleepFunc(this))->Start();

}

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!