Q&A

  • 통신시 timer on시 조금 버티다가 파란화면이뜸
약 1500바이트 정도의 데이타 통신을 받아서 그리드에 뿌려 주고 있습니다.

근데 timer를 활성화 시키면 데이타가 계속 업데이트 되다가 약 20초간 버티다가 결국은

파란색 면이 뜸미다.

interval를 조정해도 같은 현상이 일어나고 가끔은 메모리가 부족하다고도

하는데 160메가여서 이 정도의 데이타는 커버하는데 문제가 없을 같은데

해결 방법 좀 알려주세요..

1  COMMENTS
  • Profile
    길인호 2001.09.29 20:46
    델초보 wrote:

    > 약 1500바이트 정도의 데이타 통신을 받아서 그리드에 뿌려 주고 있습니다.

    > 근데 timer를 활성화 시키면 데이타가 계속 업데이트 되다가 약 20초간 버티다가 결국은

    > 파란색 면이 뜸미다.

    > interval를 조정해도 같은 현상이 일어나고 가끔은 메모리가 부족하다고도

    > 하는데 160메가여서 이 정도의 데이타는 커버하는데 문제가 없을 같은데

    > 해결 방법 좀 알려주세요..



    질문올리러 왔다가.......... 걍~~~~~

    혹시 이 문제가 아닐까요????

    timer를 이용하여 통신으로 데이터를 수신하게 되면, 문제가 생기는 부분이

    timer Interval 이 1000 일경우, 실제 데이터 수신하는데에는 시간이

    2000 이 걸린다면 ???

    timer 호출이 계속적으로 stack에 쌓이게 되고, 최종적으로 파란화면을 만납니다.



    이 문제는 다음과 같이 해결할 수 있습니다.



    var

    bFlag: Boolean; // 전역변수



    procedure TMyForm.TimerTimer(Sender: TObject);

    begin

    if not bFlag then

    begin

    bFlag:= True;

    // 데이터 수신.........

    // 데이터 처리.........

    bFlag:= False;

    end;

    end;



    한 번 님의 소스를 확인해 보시기 바랍니다.