MDI 로 윈도우 어플 개발중입니다.
(클라이언트 소켓으로 다중접속 해야함)
TCP로 약 2500바이트 정도 받아서
그리드(Cell 이 한 2100개 정도 ㅡ.ㅡ;)에 뿌려주고 있는데
이게 너무 느려요. (소켓 하나만 해도 느려서 ㅡ.ㅡ;)
눈에 보일 정도로 UI가 얼어 붙어있는 현상이 있습니다.
(처리하는 동안 창(폼)을 잡고 드래그 하고 있으면 뚝뚝 끊어지는게 눈에 보입니다..)
약 2100개의 그리드 셀에 필요한 부분만 바꿔서 업데이트 처리 하고 있습니다만...
버벅 거리고 있어서..
어떻게 해야 할지를 모르겠습니다.
(DevExpress의 퀀텀그리드를 사용중이구요.)
DevExpress의 그리드의 CustomDrawCell 이벤트를 이용하고 있습니다.
소켓으로 받은 2500바이트를 처리하는데는 얼마 안걸리는데
그리드에 컬럼이 너무 많아서 인지
그리드에 값 찍을때+CustomDrawCell 이벤트 끝나는 시점하고 해서
그 시간동안 UI가 얼어버리는것 같애요.
그리고 퀀텀 그리드 자체가 좀 느린편이라서 필드가 좀 많거나 구조가 복잡하거나 처리가 많은 경우,
데이타 건수가 많아지면 조회하는데도 느릴뿐 아니라 조회된 내용을 클릭할 경우에도 상당히 느려지는 경향이 있습니다.
cxGMasterTV.BeginUpdate;
// 처리중 메세지 보이기
:
:
try
// 자료처리...
:
:
finally
// 처리중 메세지 닫기 및 기타 완료처리
:
cxGMasterTV.EndUpdate;
end;
cxGMasterTV.Site.SetFocus;