C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[12305] Re:[질문] 쓰레드를 사용하여 프로그램을 실행하니 자꾸 가만히 멈춰있는 경우가 생깁니다.
개박살.U&I [inutero] 770 읽음    2001-11-03 14:54
안녕하세요? 개박살입니다.

그냥 지나가다가 한가지~ 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();
}
//---------------------------------------------------------------------------





+ -

관련 글 리스트
12299 [질문] 쓰레드를 사용하여 프로그램을 실행하니 자꾸 가만히 멈춰있는 경우가 생깁니다. fbpsok 690 2001/11/03
12305     Re:[질문] 쓰레드를 사용하여 프로그램을 실행하니 자꾸 가만히 멈춰있는 경우가 생깁니다. 개박살.U&I 770 2001/11/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.