|
안녕하세요? 개박살입니다.
그냥 지나가다가 한가지~ Resume를 생성하고 나서 해보시죠?
특별히 멈출이유가 없는거 같은디.. ^^;
thread_A = new Thread_A(true);
thread_B = new Thread_B(true);
thread_A->Resume();
thread_B->Resume();
저도 해보니까 스레드 문제만은 아닌거같은데요? 안의 처리부분을 모두 빼고 해보세요
전 이렇게 해봤습니다.
그럼 허접답변죄송 ^^;
//---------------------------------------------------------------------------
#ifndef ThreadH
#define ThreadH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TThread1 : public TThread
{
protected:
void __fastcall Execute();
public:
__fastcall TThread1(bool CreateSuspended);
};
//---------------------------------------------------------------------------
class TThread2 : public TThread
{
protected:
void __fastcall Execute();
public:
__fastcall TThread2(bool CreateSuspended);
};
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
friend class TThread1;
__published: // IDE-managed Components
TButton *Button1;
TButton *Button2;
TEdit *Edit1;
TEdit *Edit2;
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
private: // User declarations
TThread1 *Thread1;
TThread2 *Thread2;
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Thread.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
//---------------------------------------------------------------------------
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
__fastcall TThread1::TThread1(bool CreateSuspended): TThread(CreateSuspended)
{
FreeOnTerminate = true;
}
//---------------------------------------------------------------------------
void __fastcall TThread1::Execute()
{
long TimeInc = 0L;
while(!Terminated) {
Form1->Edit1->Text = AnsiString(TimeInc++);
Sleep(100);
}
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
__fastcall TThread2::TThread2(bool CreateSuspended): TThread(CreateSuspended)
{
FreeOnTerminate = true;
}
//---------------------------------------------------------------------------
void __fastcall TThread2::Execute()
{
long TimeInc = 0L;
while(!Terminated) {
Form1->Edit2->Text = AnsiString(TimeInc++);
Sleep(100);
}
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Thread1 = new TThread1(true);
Thread2 = new TThread2(true);
Thread1->Resume();
Thread2->Resume();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Thread1->Terminate();
Thread2->Terminate();
}
//---------------------------------------------------------------------------
|