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

델파이 Q&A
Delphi Programming Q&A
[10608] [질문]Fucn1 이라는 시리얼 출력 함수를 쓰레드와 일반호출에서 동시 사용한다면...
델짱 [] 1160 읽음    2006-03-31 09:43
---**쓰레드와  메이폼 버튼 클릭시 사용될 공용 시리얼 출력함수

procedure Tfrom1.Func1(str : string);
begin
  with Query1,Query1.SQL do
  begin
     Close;Clear;
     Add('select remark from contents where aaa = '''+str'''');
     Open;
     while not eof do  // while loop가 50회 정도된다면...
     begin 
        Comport.WriteStr( fieldbyname('remark').AsString);
        Next;
     end;
  end;
end;


--** 쓰레드에서시 호출하는 루틴

procedure TMyThread.Execute;
begin
  while (not Terminated)  do begin
    try
      Msg := from1.Client1.ReadLn;
      if Length(Msg) >= 1 then begin
         Synchronize(Func1('Msg'));
    except
      Terminate;
    end;
  end;
end;



---**메인 폼에서 버튼클릭시 Func1 사용하는 루틴

procedure Tfrom1.button1Click(sender :Tobject);
begin
   Func1('Y');
end;




안녕하세요~

시리얼로 출력을 하는 public 함수 "Func1" 을 쓰레드에서

Synchronize 로 동기화 하여 호출 사용하고

메인폼에서 버튼을 클릭하면 역시 "Func1"  사용할수 있는 환경에서...



쓰레드에서 Func1 호출하여 50회 정도 루프를 돌면서 시리얼로 text를 전송하고 있는 도중에

메인폼에서 버튼을 클릭하여 역시 50회 돌면서 text 를

전송하면 상호 간섭이 발생되지 않을까요?


예를 들면 쓰레드에서 호출한 Func1이 50회를 돌면서  1 ~ 50 까지 숫자를 출력 도중에

난데없이 메인에서 Func1  호출하여 51 ~ 100 까지 숫자

출력호출하면

출력 결과가  1~30 까지 나오고 다음에 51~100까지 나오고

그다음에 31 ~ 50 까지 출력 되는 어이 없는 경우가 발생되지는 않는지?..


물론 1-50까지 출력은 아주 짧은 시간내에 출력이 되기 때문에
별 문제없이 출력 됩니다마는 만약 굉장히 긴 Loop를 돌고 있다면

혹시 상호 간섭으로 섞여 나올수 있을수도 있게다 싶어 여러분들의

조언을 듣고 싶습니다.

만약 이상없이 출력 된다면 혹은 섞여서 출력 되는

문제가 발생되는지 그 원리가 아주 아주 궁금합니다.

+ -

관련 글 리스트
10608 [질문]Fucn1 이라는 시리얼 출력 함수를 쓰레드와 일반호출에서 동시 사용한다면... 델짱 1160 2006/03/31
10611     Re:[질문]Fucn1 이라는 시리얼 출력 함수를 쓰레드와 일반호출에서 동시 사용한다면... 박지훈.임프 1423 2006/03/31
10612         Re:Re:[질문]Fucn1 이라는 시리얼 출력 함수를 쓰레드와 일반호출에서 동시 사용한다면... 델짱 1239 2006/03/31
10613             Re:Re:Re:[질문]Fucn1 이라는 시리얼 출력 함수를 쓰레드와 일반호출에서 동시 사용한다면... 박지훈.임프 1294 2006/03/31
10625                 감사합니나^^; 내용무 델짱 1106 2006/04/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.