Synchronize메소드는 Protected메소드이므로 멀티스레드환경에서 자신이 생성한 스레드가 아닌 다른 컴포넌트에서 생성한 스레드내에서는 Synchronize를 사용하기가 곤란한 경우가 많습니다.
대표적인 경우가 넷서버의 서버에서 수신되는 클라이언트메세지의 처리작업이나 BusinessObject처리작업입니다.
이 경우 쉽게 사용할 수 있는 방법입니다.
** 델파이 7이상 : TThead.Synchronize(nil, Threadmethod)
예)
...
대표적인 경우가 넷서버의 서버에서 수신되는 클라이언트메세지의 처리작업이나 BusinessObject처리작업입니다.
이 경우 쉽게 사용할 수 있는 방법입니다.
** 델파이 7이상 : TThead.Synchronize(nil, Threadmethod)
예)
...
TThread.Synchronize(ShowData);
** 직접 구현하는 경우
type
TSync = class(TThread)
private
fmethod: TThreadmethod;
public
constructor Create(m: TThreadmethod);
procedure Execute; override;
end;
implementation
{ TSync }
constructor TSync.Create(m: TThreadmethod);
begin
inherited Create(fasle);
Freeonterminate := true;
fmethod := m;
end;
procedure TSync.Execute;
begin
Synchronize(fmethod);
end;
예)
...
TSync.Create(ShowData);
..
** 직접 구현하는 경우
type
TSync = class(TThread)
private
fmethod: TThreadmethod;
public
constructor Create(m: TThreadmethod);
procedure Execute; override;
end;
implementation
{ TSync }
constructor TSync.Create(m: TThreadmethod);
begin
inherited Create(fasle);
Freeonterminate := true;
fmethod := m;
end;
procedure TSync.Execute;
begin
Synchronize(fmethod);
end;
예)
...
TSync.Create(ShowData);
..
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | 이전게시판의 질문과답변 및 사용팁 메뉴얼관련 링크 | admin | 2008.01.23 | 5180 |
공지 | 넷서버 동영상 강좌 | admin | 2008.01.23 | 3915 |
공지 | 넷서버 소개문서 | 넷서버 | 2008.01.19 | 5116 |
8 | ch 1. 간단한 BDE서버의 제작 | admin | 2008.01.24 | 4004 |
7 | DLL과 Deadlock | admin | 2008.01.20 | 6364 |
6 | 파일업로드나 다운로드후 파일이 닫힐때 원하는 작업처리하기 | admin | 2008.01.19 | 2682 |
5 | Integate를 사용하지 않은 다른 로드밸런스 구현 방법(4tier) | 넷서버 | 2008.01.19 | 2032 |
» | Synchronize 쉽게 사용하기 | admin | 2008.01.19 | 3962 |
3 | 로드밸런스의 라이센스 배포와 관련하여 | 넷서버 | 2008.01.19 | 1747 |
2 | Intergate 로드밸런스 서버 | 넷서버 | 2008.01.19 | 1689 |
1 | 넷서버의 엔터프라이즈환경에서의 사용 방식의 개선 | 넷서버 | 2008.01.19 | 1831 |