Microsoft MVP성태의 닷넷 이야기
Listview 컨트롤의 화면 전환 시 갱신 속도 [링크 복사], [링크+제목 복사],
조회: 3655
글쓴 사람
박성원 (whenai at naver.com)
홈페이지
첨부 파일
 

C#으로 데이터를 취득하는 윈폼 프로그램을 제작 중에 있습니다.

무한루프로 아래와 같은 쓰레드 5개가 돌아가고 있습니다.

while(1)
{
             Thead.Sleep(1);
             Application.DoEvent();

            if(센서입력())
          {
                   //Listview 컨트롤에 센서 입력값 추가
                   AddItem(listviewControl, data);
           }

           if( 쓰레드멈춤Flag) break;
}

Listview는 쓰레드 별로 20개 가량 되므로 화면에도 100개 가량의 Listview 컨트롤이 탭 컨토롤에 올려져 있습니다.

문제는 데이터 갯수가 0~1000개 정도에는 상관 없는데.. 그 이상이 되면, 탭 컨트롤의 탭 페이지를 변경하는 것 만으로도

쓰레드에서 센서입력을 못 받는 경우가 발생하는 것 같습니다. 매번 그러는 것은 아니고 간헐적으로 딜레이되는 현상이 발생이

됩니다. 아마도 다른 탭 페이지 클릭 후 Listview컨트롤이 Redraw?? 할 때 새로 뿌려주는 건지 확실하지 않지만 그곳에서 딜레이가

생긴다고 의심 되는 사항인데요.

인터넷에서 검색을 해보았지만 데이터 추가에 대한 속도 개선(BeginUpdate,EndUpdate)에 대한 내용은 많으나,

이미 표시된 내용에 대한 Refresh나 Update 관련된 내용을 찾을 수가 없어 이곳에 질문을 남기게 되었습니다.

제가 궁금한 점은 이미 수천개의 데이터를 표시한 Listview컨트롤에 화면 전환 시 새로 그려주거나 표시되어져야 할 때 성능

향상할 수 있는 방법이 있는지 궁금합니다.


긴글 읽어주셔서 감사합니다.









[최초 등록일: ]
[최종 수정일: 2/14/2023]


비밀번호

댓글 작성자
 



2023-02-14 02시25분
스레드에서 센서 입력을 UI 업데이트 코드랑 분리하세요. 센서 입력을 받았으면 UI를 업데이트하는 별도의 스레드로 데이터를 전달하고 끝낸 다음 다시 센서 입력을 받는 식으로 하세요.

딱히, 재현되는 예제도 없으니 저도 더 이상 조언할 만한 것이 없습니다.
정성태

... 31  32  33  34  35  36  [37]  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
4936무개1/3/20189098책 내용 인용하는 것에 관한 질문이있습니다. [1]파일 다운로드1
4935몬난아12/28/201711797IIS 및 ASP.NET 이 서버에서의 동작방식? [2]
4934Ques...12/26/201722261C# 해상도에 따른 자동 사이즈 조절방법이 궁금합니다. [3]
4933Kay12/15/20179491C# VS 버전 에러 질문 드립니다. [1]파일 다운로드1
4932정환나라12/13/20179391vs2013에서 빌드한 com 컨트롤 객체를 닷넷 2.0에서 사용하려 합니다 [4]
4931Arvid12/12/201710498Visual Studio 2012 c# using문 참조 에러 [5]파일 다운로드1
4929김성대12/8/20178908app.config에 관한질문입니다. [1]
4928김성대12/7/20179569SQL Server 설치에러에 대한 질문입니다. [1]파일 다운로드1
4926heyh...12/6/20178817[삭제] ContextSwitchDeadlock????
4925ho12/5/20179335[삭제] WebBrowser로 드롭박스 로그인 페이지 탐색 시 발생한 문제에 대해 질문 올립니다.파일 다운로드2
4924몽중언12/3/20179761C# 디버깅 모드에서만 DB Insert가 되는 현상 질의 [6]
4923고요한11/23/20179861파일 확장자에 연결된 프로그램을 등록하는 방법에 대한 질문입니다. [2]
4922박성훈11/23/201710824시작하세요! C# 7.1 학습 방법 [3]
4921초보개발자11/20/20178074[삭제] 폼 사이즈 질문드립니다.
4920Ques...11/19/20179225IEnumerable 의 "지연된 평가" 에 관하여 질문드립니다. [2]파일 다운로드1
4919mskim11/16/20179554Split()을 이용하여 문자 구분 시 구분문자도 같이 저장하는 방법이 있나요? [2]
4917ho11/16/201710187WPF XAML 트리거 관련해 문의 드립니다. [3]
4918ho11/16/201710485    답변글 [답변]: 예제 프로젝트 첨부합니다. [4]파일 다운로드2
4916필승11/11/201710151기본 웹 브라우저 체크는 어떻게 해야 하나요? [2]
4915필승11/10/20179214WebBrowser 컨트롤 소리 출력 문의 드립니다. [2]
4914Ques...11/10/20179909c# 버튼 이벤트에 관하여 질문드립니다. [2]
4913Arvid11/8/201712347Log4Net 라이브러리를 이용하여 특정 기간이 지났을 때 자동 로그 삭제 기능 구현 질문 드립니다! [2]
4912조범희11/8/201712031C# FTP 다운로드중 에러 발생.. [2]파일 다운로드1
4911필승11/6/201710433WebBrowser 컨트롤 사용법에 대해 궁금합니다. [2]
4910진우11/6/201710005람다 초보 질문 드립니다. [2]
4909필승11/5/201710865TextBox에 관해 질문 드립니다. [5]
... 31  32  33  34  35  36  [37]  38  39  40  41  42  43  44  45  ...