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
[10865] Re:다시 질문.....Synchronize에서 함수호출시 파라메터 사용법.......
박지훈.임프 [cbuilder] 1504 읽음    2001-09-09 03:15
임프랍니다.

TThread::Synchronize() 함수의 인자로 넘길 수 있는 함수는 파라미터가 없어야 합니다.
직접적으로 파라미터를 가지는 함수를 넘겨줄 방법은 없습니다.
이 경우에 전역변수나 쓰레드의 멤버변수, 아니면 호출한 쪽의 폼 멤버변수를 쓰는 수밖에 없지요.
Synchronize()함수내에서 이런 변수들을 억세스해도 동기화문제는 발생하지 않으므로 상관없습니다.

그럼 이만...


심호용 님이 쓰신 글 :
: 1.Thread의 Execute에서 Synchronize로 함수를 호출할 경우 파라메타가 없을 경우는 아래와 같이 하면
:  되는데,만약 CheckSaveStop함수가 아래와 같은 함수라면 어떻게 호출하죠?
:
: bool CheckSaveStop(int a,int b)
: {
: .....
: }
:
:
: //정대 체크 및 저장
:  Synchronize(CheckSaveStop);         -> 파라메타가 없을 경우 호출

: 2. 위의 방법이 안되면, ADO Vcl을 Thread내에서 사용시 Execute내에서 해당 함수를 호출하면 CoInitialize에러가 나던데.......해결 방법 없나요?
: 예를 들면 SaveCompHis를 Execute내에서 호출하려면 어떻게 해야되죠?
:
: void __fastcall TDatathread::Execute(void)
: {
:      SaveCompHis(hodae);     ->에러 남.(CoInitialize에러)
: }
:
: void __fastcall TDatathread::SaveCompHis(int Hodae)
: {
:     TADOQuery *adoQ;
:     String Status;
:
:     adoQ = new TADOQuery(Application);
:     adoQ->ConnectionString = GetConnectionString(FormatDateTime("yyyymm",Now()),"H");
:
:     Status = "1";
:     adoQ->Close();
:     adoQ->SQL->Clear();
:     adoQ->SQL->Add("INSERT INTO CompHis ");
:     adoQ->SQL->Add("(Hodae,cTime,Status) VALUES ");
:     adoQ->SQL->Add("(" + String(Hodae+1) + ",");
:     adoQ->SQL->Add("'" + FormatDateTime("yyyy-mm-dd hh:nn:ss",Now()) + "',");
:     adoQ->SQL->Add("'" + Status + "')");
:     adoQ->ExecSQL();
:
:     delete adoQ;
: }
:
:

+ -

관련 글 리스트
10842 다시 질문.....Synchronize에서 함수호출시 파라메터 사용법....... 심호용 915 2001/09/08
10865     Re:다시 질문.....Synchronize에서 함수호출시 파라메터 사용법....... 박지훈.임프 1504 2001/09/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.