메뉴 건너뛰기

넷서버 사용 팁/강좌

Synchronize 쉽게 사용하기

admin 2008.01.19 07:18 조회 수 : 3948

Synchronize메소드는 Protected메소드이므로 멀티스레드환경에서 자신이 생성한 스레드가 아닌 다른 컴포넌트에서 생성한 스레드내에서는 Synchronize를 사용하기가 곤란한 경우가 많습니다.
대표적인 경우가 넷서버의 서버에서 수신되는 클라이언트메세지의 처리작업이나 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);
..

번호 제목 글쓴이 날짜 조회 수
공지 이전게시판의 질문과답변 및 사용팁 메뉴얼관련 링크 admin 2008.01.23 4633
공지 넷서버 동영상 강좌 admin 2008.01.23 3915
공지 넷서버 소개문서 넷서버 2008.01.19 5110
28 넷서버의 엔터프라이즈환경에서의 사용 방식의 개선 넷서버 2008.01.19 1825
27 Intergate 로드밸런스 서버 넷서버 2008.01.19 1682
26 로드밸런스의 라이센스 배포와 관련하여 넷서버 2008.01.19 1744
» Synchronize 쉽게 사용하기 admin 2008.01.19 3948
24 Integate를 사용하지 않은 다른 로드밸런스 구현 방법(4tier) 넷서버 2008.01.19 2032
23 파일업로드나 다운로드후 파일이 닫힐때 원하는 작업처리하기 admin 2008.01.19 1981
22 DLL과 Deadlock admin 2008.01.20 6347
21 ch 1. 간단한 BDE서버의 제작 admin 2008.01.24 4000
20 ch 2. 간단한 클라이언트프로그램의 제작 admin 2008.01.24 2988
19 ch 3.메세지클라이언트의 제작 admin 2008.01.24 4526
18 ch 4. 비즈니스오브젝트의 작성-서버 admin 2008.01.24 4473
17 ch 5. 비즈니스오브젝트를 클라이언트에서 사용하기 admin 2008.01.24 2722
16 Ch6. 채팅서버 프로그램의 제작 admin 2008.01.24 3116
15 Ch7. 채팅클라이언트 프로그램의 제작 admin 2008.01.24 3176
14 [동영상] 넷서버 서버의 제작 admin 2008.01.24 2700
13 [동영상] 넷서버 클라이언트 프로그램의 제작 admin 2008.01.24 3035
12 넷서버의 설치 방법 admin 2008.01.24 4873
위로