Q&A

  • 쓰레드에 파라메타 주기
TSchdule_process.Create(ThreadID);



이런 식을로 쓰레드를 생성 시킬때 쓰레드에 파마메터를 줄려면 어떻케 줘야 하나여?

알고계신분 답변좀 주세여...

3  COMMENTS
  • Profile
    모모 2001.04.02 19:57
    sorapig wrote:

    > TSchdule_process.Create(ThreadID);

    >

    > 이런 식을로 쓰레드를 생성 시킬때 쓰레드에 파마메터를 줄려면 어떻케 줘야 하나여?

    > 알고계신분 답변좀 주세여...



    생성자를 새로 정의해 주시고 호출하실 때 위와 같이 쓰시면 됩니다.



    다음은 생성자의 예입니다.



    // 쓰레드의 생성자...

    // TScan은 쓰레드 객체입니다.

    constructor TScan.Create(ID: Integer);

    begin



    // 원래의 생성자을 상속합니다. 다음 라인은 항상 제일먼저 써 주어야 합니다.

    inherited Create(true); // 생성하자마자 실행하시려면 여기에 false를 줍니다.

    {

    각종 속성을 여기에 Default로 설정할 수 있습니다.

    Priority := tpTimeCritical; // Thread 우선순위 설정

    FreeOnTerminated := true; // Thread 종료후 자동해제 설정

    }

    // 현재의 순번을 설정합니다.

    nTID := ID;

    // 여기의 Log함수는 제가 만든겁니다.

    // Thread의 로그를 남깁니다.

    Log('*** Thread[' + IntToStr(ID) + '(' + IntToStr(ThreadID) + ')] 생성됨.');



    end;



  • Profile
    sorapig 2001.04.02 21:12
    모모 wrote:

    > sorapig wrote:

    > > TSchdule_process.Create(ThreadID);

    > >

    > > 이런 식을로 쓰레드를 생성 시킬때 쓰레드에 파마메터를 줄려면 어떻케 줘야 하나여?

    > > 알고계신분 답변좀 주세여...

    >

    > 생성자를 새로 정의해 주시고 호출하실 때 위와 같이 쓰시면 됩니다.

    >

    > 다음은 생성자의 예입니다.

    >

    > // 쓰레드의 생성자...

    > // TScan은 쓰레드 객체입니다.

    > constructor TScan.Create(ID: Integer);

    > begin

    >

    > // 원래의 생성자을 상속합니다. 다음 라인은 항상 제일먼저 써 주어야 합니다.

    > inherited Create(true); // 생성하자마자 실행하시려면 여기에 false를 줍니다.

    > {

    > 각종 속성을 여기에 Default로 설정할 수 있습니다.

    > Priority := tpTimeCritical; // Thread 우선순위 설정

    > FreeOnTerminated := true; // Thread 종료후 자동해제 설정

    > }

    > // 현재의 순번을 설정합니다.

    > nTID := ID;

    > // 여기의 Log함수는 제가 만든겁니다.

    > // Thread의 로그를 남깁니다.

    > Log('*** Thread[' + IntToStr(ID) + '(' + IntToStr(ThreadID) + ')] 생성됨.');

    >

    > end;

    >

    답변 고맙습니다..

    군데 제가 여쭙코자하는 것은 ThreadID 뿐만아니라 다른 파라메터도 추가코자 하는것입니다...

    현재 저는

    TSchdule_process.Create(ID: Integer; SCH_ID ,SCH_GUBUN : string);

    이런 식으로 test를 하고 있는데 이렇케 사용 해도 되는 것인지 궁금 합니다..



  • Profile
    모모 2001.04.02 21:30
    sorapig wrote:

    > 모모 wrote:

    > > sorapig wrote:

    > > > TSchdule_process.Create(ThreadID);

    > > >

    > > > 이런 식을로 쓰레드를 생성 시킬때 쓰레드에 파마메터를 줄려면 어떻케 줘야 하나여?

    > > > 알고계신분 답변좀 주세여...

    > >

    > > 생성자를 새로 정의해 주시고 호출하실 때 위와 같이 쓰시면 됩니다.

    > >

    > > 다음은 생성자의 예입니다.

    > >

    > > // 쓰레드의 생성자...

    > > // TScan은 쓰레드 객체입니다.

    > > constructor TScan.Create(ID: Integer);

    > > begin

    > >

    > > // 원래의 생성자을 상속합니다. 다음 라인은 항상 제일먼저 써 주어야 합니다.

    > > inherited Create(true); // 생성하자마자 실행하시려면 여기에 false를 줍니다.

    > > {

    > > 각종 속성을 여기에 Default로 설정할 수 있습니다.

    > > Priority := tpTimeCritical; // Thread 우선순위 설정

    > > FreeOnTerminated := true; // Thread 종료후 자동해제 설정

    > > }

    > > // 현재의 순번을 설정합니다.

    > > nTID := ID;

    > > // 여기의 Log함수는 제가 만든겁니다.

    > > // Thread의 로그를 남깁니다.

    > > Log('*** Thread[' + IntToStr(ID) + '(' + IntToStr(ThreadID) + ')] 생성됨.');

    > >

    > > end;

    > >

    > 답변 고맙습니다..

    > 군데 제가 여쭙코자하는 것은 ThreadID 뿐만아니라 다른 파라메터도 추가코자 하는것입니다...

    > 현재 저는

    > TSchdule_process.Create(ID: Integer; SCH_ID ,SCH_GUBUN : string);

    > 이런 식으로 test를 하고 있는데 이렇케 사용 해도 되는 것인지 궁금 합니다..

    >



    제가 올린 글이 너무 어려웠는지 잘 이해를 못하신 것 같습니다.



    위의 생성자는 원래의 생성자를 재정의한 것이기 때문에 사용자 임의로



    파라메터를 줄 수 있습니다.



    생성자를 만드실 때 위와 같이 만드시면 될 것 같습니다.



    {Thread Unit}

    // 생성자 선언

    .... 중간 생략....



    public

    constructor Create(ID: Integer; SCH_ID ,SCH_GUBUN : string); // 생성자



    ....이하 생략......



    위와 같이 선언을 하시면 생성자의 구현은 다음과 같겠지요...



    constructor TScan.Create(ID: Integer; SCH_ID ,SCH_GUBUN : string);

    begin



    // 원래의 생성자을 상속합니다. 다음 라인은 항상 제일먼저 써 주어야 합니다.

    inherited Create(true); // 생성하자마자 실행하시려면 여기에 false를 줍니다.

    {

    각종 속성을 여기에 Default로 설정할 수 있습니다.

    Priority := tpTimeCritical; // Thread 우선순위 설정

    FreeOnTerminated := true; // Thread 종료후 자동해제 설정

    }

    // 현재의 순번을 설정합니다.

    nTID := ID;

    // 여기의 Log함수는 제가 만든겁니다.

    // Thread의 로그를 남깁니다.

    Log('*** Thread[' + IntToStr(ID) + '(' + IntToStr(ThreadID) + ')] 생성됨.');



    end;