프로그래밍/C++ Builder

싱글 쓰레드 예제

Dev-Drake 2019. 6. 28. 16:38
반응형


#include 
#pragma hdrstop

#include "Unit1.h"

#pragma package(smart_init)
#pragma link "CGAUGES"
#pragma resource "*.dfm"
TForm1 *Form1;

//Thread Func
DWORD WINAPI ThreadFunc(LPVOID Param)
{
    while(Form1->m_bActive){
        for(int i=0; i<100; i++){
            Form1->CGauge1->Progress++;
            Sleep(1);
        }
        Form1->CGauge1->Progress = 0;
    }

    return 0;
}

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{

}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    m_bActive   = TRUE;
    hThread     = CreateThread(NULL, 0, ThreadFunc, NULL, 0, &ThreadId);
}

void __fastcall TForm1::FormDestroy(TObject *Sender)
{
    CloseHandle(hThread);    
}

void __fastcall TForm1::Button2Click(TObject *Sender)
{
    m_bActive = FALSE;
}

 

반응형