Q&A

  • ActiveX Form에서 쓰레드 적용
안녕하세요..델초보입니다. 다름이 아니오라 ActiveX 에서 Thread 적용에 대한 질문을 드리고자합니다.

procedure TMyThread.View;
var
i, j : Integer;
begin
   j := 0;
   for i := 1 to 1000 do
   begin
       Inc(j);
       test.Memo1.Lines.Add(IntToStr(j));
   end;
end;

procedure TMyThread.Execute;
begin
   Synchronize(view);
end;

procedure Ttest.Button1Click(Sender: TObject);
var
MyThread : TMyThread;
begin
   Memo1.Lines.Add('Memo Reay');
   MyThread := TMyThread.Create(False);
   Memo1.Lines.Add('Thread Create');
   MyThread.Priority := tpHigher;

end;

위 소스는 ActiveX 폼에서 숫자를 증가 시키는 것인데 쓰레드를 테스트 하던중 일반

어플리케이션에서는 작동이 잘되었습니다..

허나 이걸 ActiveX에서 작동을 시키기 반응이 없습니다.

질답란이나강좌란을 찾아봐도 ActiveX에서 쓰레드가 안된다는 질문만 있고 명백히 해결할 수 있는 방안에 대한 해결책을 못찾았습니다.

고수님들의 넓은 마음으로 가르침을주시기 바랍니다.
1  COMMENTS
  • Profile
    한원희 2004.12.03 03:17
    안녕하세요. 한원희입니다.

    저도 비슷한 문제로 고민을 하다가 결국은 꽁수로 PostMessage로 대신 처리하도록 해서 해결했던 기억이 납니다.

    정확하게 원인이 무엇인지는 잘 모르겠지만, Synchronize를 사용하지 않는 스레드는 별 이상없이 동작했던것 같습니다. Synchronize 매커니즘상 ActiveForm과 충돌나는 부분이 있지 않을까하는 추측을...

    아무튼, 즐프~