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
[76343] Re:Re:[질문]쓰레드 지연하기
박영목.월천 [gsbsoft] 747 읽음    2022-10-15 04:56
void __fastcall Test::Execute()
{
   //---- Place thread code here ----
   int  i=0;

   while(!Terminated)
   {
      i=30
      while( i-- )
     {
        Sleep( 100 );         //<-- Sleep은 1000, 2000, 3000 ... 빠져나오지 못하는 Bug 있습니다. 생각이 가물가물.. 값을 짧게 주세요
        if( Terminated ) break;
     }

      Synchronize(TimeDisplay);          //<---  PostMessage로 보내서 main에서 처리하는게 더 안전할 것 같습니다.
   }                                                     //Synchronize 이걸로 감싸도 되지만...

   Form1->Label1->Caption = "End";    //<---  PostMessage로 보내서 main에서 처리하는게 더 안전할 것 같습니다.
}
//----------------------------------

참고만 하세요....^^    새벽 5시가 다 되었네요....  이제 뭐하지.... 그만할까.....


하안인 님이 쓰신 글 :
: WaitForSingleObject((void*)this->Handle ,3000);
: 로 하니 작동되네요.
:
: 그런데 쓰레드 상에서 Sleep 함수를 사용하면 가끔 쓰레드가 멈추는것 같은데
: Sleep 함수를 사용해서 그런건가요.
:
: 하안인 님이 쓰신 글 :
: : 빌더6을 사용하고 있습니다.
: :
: : thread 상에서는 Sleep 함수를 사용하지 않는 것이 좋다고 해서
: : WaitForSingleObject(NULL ,3000);
: : 를 써서 3초동안 시간지연을 하려고 하는데
: : 아래코드로 쓰레스 생성후 실행해도
: : 지연이 안되네요.
: :
: :
: : __fastcall Test::Test(bool CreateSuspended)
: :   : TThread(CreateSuspended)
: : {
: :   FreeOnTerminate = true;
: : }
: : //---------------------------------------------------------------------------
: : void __fastcall Test::Execute()
: : {
: :   //---- Place thread code here ----
: :   while(!Terminated)
: :   {
: :      WaitForSingleObject(NULL ,3000);
: :      Synchronize(TimeDisplay);
: :   }
: :   Form1->Label1->Caption = "End";
: : }
: : //---------------------------------------------------------------------------
: : void __fastcall Test::TimeDisplay()
: : {
: :     Form1->Label1->Caption = FormatDateTime("yyyy-mm-dd hh:nn:ss",Now());
: : }

+ -

관련 글 리스트
76337 [질문]쓰레드 지연하기 하안인 737 2022/09/22
76338     Re:[질문]쓰레드 지연하기 하안인 829 2022/09/22
76343         Re:Re:[질문]쓰레드 지연하기 박영목.월천 747 2022/10/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.