C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[46104] 스레드의 속도가 늦습니다.소스좀 확인해주십시요.
이범상 [] 887 읽음    2006-08-09 16:27
//---------------------------------------------------------------------------
void __fastcall CSectionManager::Execute()
{
    for (j=0;j < 500;j++)
    {
        if (ModuleNode->Item[j]->Text.SubString(1,2) == "OK")
            continue;

        if (FileExists(Filename1)){
            blockNodeName.sprintf("Block Number : %05d",j);
        } else if (FileExists(Filename)) {
            blockNodeName.sprintf("Block Number : %05d",j);
            RenameFile(Filename,Filename1);
        } else {
            continue;
        }
        Synchronize(ShowStatus);
    }
}
//---------------------------------------------------------------------------
void __fastcall CSectionManager::ShowStatus(void)
{
    ModuleNode->Item[j]->Text = blockNodeName;
}
//---------------------------------------------------------------------------

위 소스는 제가 사용하는 스레드 클래스 소스의 일부분입니다.
메인폼에는 트리가 있고 트리는 특정디렉토리의 일련번호파일들을 나타내고있습니다.

메인에서 저 스레드를 생성시키면
스레드는 소스에서처럼 두종류파일(Filename, Filename1)을 찾아보고 있으면 Synchronize를 통해서 메인폼의
트리에서 해당 노드의 Text속성을 변경시킵니다.

그런데 이 과정이 속도가 너무 느립니다.
화면을 보고 있으면 약 500개 정도의 노드가 있는데 하나씩 변경되는 모습이 보입니다.

이전에 스레드를 사용하지 않고 메인에서 바로 변경을하면 변경되는 모습을 볼수 없었는데
스레드를 사용하니 너무 확연히 보입니다.

제 생각은 일일이 Synchronize를 들낙날낙해서 속도가 느린것같습니다.

무슨 연유로 이렇게 느릴까요???
고수님들의 답변 부탁드립니다.

그리고 이걸 해결할 수 있는 방법은 없을까요???

읽어주셔서 감사합니다. ^^

+ -

관련 글 리스트
46104 스레드의 속도가 늦습니다.소스좀 확인해주십시요. 이범상 887 2006/08/09
46113     Re:스레드의 속도가 늦습니다.소스좀 확인해주십시요. 왕대박 1262 2006/08/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.